发布于2020-03-18 13:17 阅读(1865) 评论(0) 点赞(3) 收藏(0)
每个人心中都有一个成为网红,一夜暴富的想法。那一夜,,,,
我看到了这么个视频
想制作类似的视频,然后分分分钟月入百万,,,,
因此:
最终成品类似
这里并没有直接去爬取各省卫健委数据,而是直接使用现成的数据集。直接使用2019新型冠状病毒疫情实时爬虫所公开的数据获取接口,该数据包括各省疫情变化数据,满足我们的要求。
主要利用了几个接口:
/nCoV/api/provinceName 获取各个省份名称
/nCoV/api/area 获取各省疫情变化趋势
具体代码比较简单就直接贴上来
import requests
import pickle
provinces = ['上海市', '云南省', '内蒙古自治区', '北京市', '台湾', '吉林省', '四川省', '天津市', '宁夏回族自治区', '安徽省', '山东省', '山西省', '广东省', '广西壮族自治区',
'新疆维吾尔自治区', '江苏省', '江西省', '河北省', '河南省', '浙江省', '海南省', '湖北省', '湖南省', '澳门', '甘肃省', '福建省', '西藏自治区', '贵州省',
'辽宁省', '重庆市', '陕西省', '青海省', '香港', '黑龙江省']
def get_raw_data(province):
"""获取各个省份疫情原始数据"""
print('正在获取 %s 的数据' % (province))
url = 'https://lab.isaaclin.cn/nCoV/api/area'
params = {'latest': 0, 'province': province}
r = requests.get(url, params=params)
fileurl = r.json()['results'][0]['statisticsData']
r = requests.get(fileurl)
data = r.json()['data']
return data
data = []
for province in provinces:
pdata = get_raw_data(province)
data.append([province, pdata])
# # 保存,之后不用再次请求接口
# with open('data.pkl', 'wb') as f:
# pickle.dump(data, f)
# with open('data.pkl', 'rb') as f:
# data = pickle.load(f)
# 各个省份疫情统计时间不一致,这里简单统一一下
dates = [20200120, 20200121, 20200122, 20200123, 20200124, 20200125, 20200126, 20200127, 20200128, 20200129, 20200130,
20200131, 20200201, 20200202, 20200203, 20200204, 20200205, 20200206, 20200207, 20200208, 20200209, 20200210,
20200211, 20200212, 20200213, 20200214, 20200215, 20200216, 20200217, 20200218, 20200219, 20200220, 20200221,
20200222, 20200223, 20200224, 20200225, 20200226, 20200227, 20200228, 20200229, 20200301, 20200302, 20200303,
20200304, 20200305, 20200306, 20200307, 20200308, 20200309, 20200310, 20200311, 20200312, 20200313]
def handle(pdata):
# 处理各个省份的数据为时间序列
res = dict()
for item in pdata:
num = item['currentConfirmedCount']
date = item['dateId']
res[date] = num
return res
with open('out.csv', 'w') as f:
f.write('省份,Category,' + ','.join(map(lambda x: str(x)[4:], dates)) + '\n')
for i, [province, pdata] in enumerate(data):
f.write(province + ',' + str(i + 1) + ',')
pdata = handle(pdata)
f.write(','.join(map(str, [pdata.get(date, 0) for date in dates])) + '\n')
这样就获取了各个省份疫情历史数据(按照预期的格式,后面会用)
这里直接使用 https://app.flourish.studio/@flourish/bar-chart-race 在线制作工具。
其实只需要导入刚刚生成的csv格式数据,然后简单设置就行。
选择data,然后upload data file。
设置value为C-ZZ即可。其实还可以添加图标,设置分组等操作,具体我没操作。
这里没有发现哪里导出视频,我直接使用录屏软件录制,然后就得到了各省疫情变化的racing bar视频。如下
开开心心传到抖音、B站,然后等着一夜爆红。。。
结果没有过审…
这篇博客技术性不强,主要是记录一下制作racing bar视频的全过程。毕竟我在网上也没有快速找到制作这类视频的方法,也算是一个类似的可视化教程帖。有兴趣的可以自己玩玩。
下面是公众号,欢迎扫描二维码,谢谢关注,谢谢支持!
公众号名称: Python入坑NLP
本公众号主要致力于自然语言处理、机器学习、coding算法以及Python的一些知识分享。本人只是小菜,希望记录自己学习、工作过程的同时,大家一起进步。欢迎交流、分享。
作者:编程gogogo
链接:https://www.pythonheidong.com/blog/article/265613/3a91985fef0d38edb85f/
来源:python黑洞网
任何形式的转载都请注明出处,如有侵权 一经发现 必将追究其法律责任
昵称:
评论内容:(最多支持255个字符)
---无人问津也好,技不如人也罢,你都要试着安静下来,去做自己该做的事,而不是让内心的烦躁、焦虑,坏掉你本来就不多的热情和定力
Copyright © 2018-2021 python黑洞网 All Rights Reserved 版权所有,并保留所有权利。 京ICP备18063182号-1
投诉与举报,广告合作请联系vgs_info@163.com或QQ3083709327
免责声明:网站文章均由用户上传,仅供读者学习交流使用,禁止用做商业用途。若文章涉及色情,反动,侵权等违法信息,请向我们举报,一经核实我们会立即删除!