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

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

作者: 小笨鸟_1d2f | 来源:发表于2020-03-22 19:52 被阅读0次

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

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

    找了国内某大型新闻网站

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

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

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

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

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

    第二步:爬取并整理数据

    1.获得各个国家的名称

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

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

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

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

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

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

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

    保存在表格中的数据为:

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

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

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

    3.画出横向柱状图

    结果为

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

    结果为

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

    结果为:

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

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

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

    相关文章

      网友评论

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

          本文链接:https://www.haomeiwen.com/subject/etwvyhtx.html