海外疫情发展态势怎么样?python动态视频20秒告诉你

新型冠状病毒感染的肺炎疫情爆发以来,全球各国都采取措施开展战“疫”斗争。我国在党和政府的坚强领导下,疫情态势呈现不断向好的态势,国内新增确诊病例逐渐归零,而海外的疫情态势却不容乐观,每日新增病例都在不断扩大,下面用python带着大家制作1个海外国家疫情态势发展的视频,清晰了解海外国家疫情发展速度。


第一步:寻找疫情数据接口

找了国内某大型新闻网站


海外疫情发展态势怎么样?python动态视频20秒告诉你


然后打开流量分析工具开始分析数据来源,很容易就找到了返回某个国家全部疫情数据的接口

海外疫情发展态势怎么样?python动态视频20秒告诉你

请求参数为:


海外疫情发展态势怎么样?python动态视频20秒告诉你


根据上图我们可以发现,该请求以post方式进行,唯一变化的参数是国家名字,意味着我们要想获得所有国家的数据就要挨个模拟请求,那么怎么获取所有国家的名字呢?

不要着急,还在流量分析工具中寻找


海外疫情发展态势怎么样?python动态视频20秒告诉你


找到这个,里面包含各个国家的名字,数据显得有些乱,其实就是json格式的数据,它的请求参数为:


海外疫情发展态势怎么样?python动态视频20秒告诉你


Callback为回调函数,可以去掉,其他参数都不变,到这里思路已经捋顺了,开始撸代码吧。

第二步:爬取并整理数据

1.获得各个国家的名称


海外疫情发展态势怎么样?python动态视频20秒告诉你


这一步没什么难度,就是简单的模拟请求,然后以json格式取出国家名字 。

2.获得每个国家的疫情数据

直接在上述获得国家名字的for循环下,组成新的url,开始post请求


海外疫情发展态势怎么样?python动态视频20秒告诉你


最后以国家名字为key、疫情数据为值存入字典中。

3.将获得的数据存入表格中


海外疫情发展态势怎么样?python动态视频20秒告诉你


需要注意2点,一是标记处的k值,是当前表格内已经保存数据的行数,所以下面从k+t行开始(表格保存从第0行开始,t初始值也为0);二是加了个sortdate函数,为什么要加这个函数呢?因为返回数据的日期为下图格式:

海外疫情发展态势怎么样?python动态视频20秒告诉你


而02.10这种字符被程序自动识别为2.1,最后画图的时候就会出错,所以在此写了个sortdate函数,可以将02.01转换为2020年2月1日,该函数代码为:

海外疫情发展态势怎么样?python动态视频20秒告诉你


保存在表格中的数据为:


海外疫情发展态势怎么样?python动态视频20秒告诉你


第三步:画单张疫情排名图

1.用pandas读取表格中的数据,设置图形窗口大小


海外疫情发展态势怎么样?python动态视频20秒告诉你


2.找出时间为'2020年3月20日'对应的数据,并以确诊人数(confirm)为排序依据,取出前十名,将数据反转


海外疫情发展态势怎么样?python动态视频20秒告诉你


3.画出横向柱状图


海外疫情发展态势怎么样?python动态视频20秒告诉你


结果为

海外疫情发展态势怎么样?python动态视频20秒告诉你


4.将确诊人数放入图形中

海外疫情发展态势怎么样?python动态视频20秒告诉你


结果为

海外疫情发展态势怎么样?python动态视频20秒告诉你


5.设置标题、时间戳、坐标轴和网格线,增加图形美观


海外疫情发展态势怎么样?python动态视频20秒告诉你


结果为:

海外疫情发展态势怎么样?python动态视频20秒告诉你


一张图已经画完了,下面要根据时间轴让图片动起来。

第四步;依据时间轴画动态图

主要做法是将第三步的程序放入start函数中,添加date参数,再用matplotlib的 FuncAnimation()绘制动图,代码如下:


海外疫情发展态势怎么样?python动态视频20秒告诉你


然后就可以像文章开头的视频一样将数据动态展示出来了!


文中所使用的代码已经请在公众号“python的爬虫与数据分析之路”里回复关键字:动图


精彩回顾:

基金抄底成功的概率有多大?python带你来分析

python骚操作之电脑自动刷抖音

用python画出某“毒王”的动态路线图

Python教你玩转代理ip



分享到:


相關文章: