全球疫情及疫苗接种进度可视化之一--全球疫情形势动态地图展示

  • 安装plotly库
  • 全球疫情形势
  • 定义工具函数
    • 抽取数据
    • 绘制动态图表
    • 重抽样
  • 数据抽取、整理与可视化展示
    • 抽取原始数据
    • 按周重抽样
    • 确诊病例
    • 治愈病例
    • 死亡病例

全国疫情及疫苗接种进度可视化

  • 全球疫情及疫苗接种进度可视化之一–全球疫情形势动态地图展示
  • 全球疫情及疫苗接种进度可视化之二–新冠疫情形势气泡图
  • 全球疫情及疫苗接种进度可视化三–疫苗研发情况
  • 全球疫情及疫苗接种进度可视化之四–各国疫苗接种进度

如果想了解更多有趣的项目和小玩意,都可以来我这里哦通道

2020年底以来,欧美、印度、中国、俄罗斯等多国得制药公司纷纷推出了针对新冠肺炎的疫苗,这部分要分析了2020年以来全球疫情形势、各类疫苗在全球的地理分布、疫苗在各国的接种进度进行可视化展示,以期给读者提供当前疫情以及未来疫情防控的直观展示。

安装plotly库

因为这部分内容主要是用plotly库进行数据动态展示,所以要先安装plotly库

pip install plotly

除此之外,我们对数据的处理还用了numpypandas库,如果你没有安装的话,可以用以下命令一行安装

pip install plotly numpy pandas
#导入所需库
import pandas as pd
import numpy as np
import plotly.express as px
import plotly.graph_objects as go

全球疫情形势

分析2020年以来、全球感染人数、死亡人数、治愈人数的情况,由于涉及时间序列数据,因此拟采用plotly库中动态图表的方式进行直观展示。

定义工具函数

抽取数据

#抽取数据
def fetch_data(file):df=pd.read_csv(file)# 用pd.read_csv读取csv文件#由于美国等国数据是按二级行政区划提供的,需按国家进行汇总,并且去掉了Lat,Long两列result=df.groupby(['Country/Region']).sum().drop(['Lat','Long'],axis=1).stack()# 重新定义索引result=result.reset_index()result.columns=['Country','date','value']result['date_']=pd.to_datetime(result.date)#生成时间索引result=result.sort_values(by='date_',axis=0,ascending=True)#按时间排序result=result.replace('\*','',regex=True)#有些国家名字中有*,去掉国名中的*return result

绘制动态图表

#绘制动态图表
def draw_data(df, label,color):fig=px.choropleth(df,locations='Country',#选择城市为坐标locationmode='country names',animation_frame='date',#以时间为轴color='value',#颜色变化选择人数color_continuous_scale=[[0, 'White'],[1, color]],#按提供的颜色作为最大值的颜色colorlabels={'value':label},#按提供的label绘制图例range_color=[df.value.min(), df.value.max()])#按全程数据的最大值、最小值进行绘制,不采用autoscalefig.show()

重抽样

#重抽样  源数据为按天展示的数据,为减少数据展示的计算量,需重抽样为周或月
def resample(df,period):country_list=df.Country.drop_duplicates()#计算城市,得到城市的列表temp=df.copy()result=pd.DataFrame()for i in country_list: #按国家分别进行重抽样,并合并数据r_temp=temp.loc[temp.Country==i]#选择对应的城市的行r_temp=r_temp.drop_duplicates(['date_'])#对数据去重r_temp=r_temp.set_index('date_')r_temp=r_temp.resample(period).asfreq().dropna()#重采样并且删除缺失值r_temp=r_temp.reset_index()result=pd.concat([result,r_temp])return result.sort_values(by='date_',axis=0,ascending=True)

数据抽取、整理与可视化展示

抽取原始数据

#抽取原始数据
confirmed=fetch_data(r'data/time_series_covid19_confirmed_global.csv')
recovered=fetch_data(r'data/time_series_covid19_recovered_global.csv')
deaths=fetch_data(r'data/time_series_covid19_deaths_global.csv')

按周重抽样

#按周重抽样
confirmed=resample(confirmed,'W')
recovered=resample(recovered,'W')
deaths=resample(deaths,'W')

确诊病例

#确诊病例
draw_data(confirmed,'确诊病例数','Red')

这是一个动态的图,可以看到每个时期的变化,这里我给出图片,详细可以实现代码观测

由上图可以看到:

  • 美国疫情大规模爆发大致始于2020年4月初
  • 随后是俄罗斯、印度、南美各国,于2020年6月后先后爆发了大规模疫情
  • 最后是欧洲,在2020年底发生了疫情爆发
  • 从全球目前累计感染人数来看,美国占绝大多数,另外印度、巴西、俄罗斯、欧洲也较多

治愈病例

#治愈病例
draw_data(recovered,'治愈病例数','Green')

由上图可以看到:

  • 2020年6月中旬后,美国、巴西、印度、俄罗斯开始有较多患者被治愈
  • 印度在2020年下半年有较多治愈病例
  • 2020年12月底以后,美国治愈病例数据有缺失,造成图像失真(我打算找机会造点数据)

死亡病例

#死亡病例
draw_data(deaths,'死亡病例数','Black')

由上图可以看到,死亡病例趋势与确诊病例大致相同

数据来源:
COVID-19 Data Repository by the Center for Systems Science and Engineering (CSSE) at Johns Hopkins University

全球疫情形势动态地图展示(超帅超好玩的python动图)相关推荐

  1. python 制作gif-怎样用Python制作好玩的GIF动图

    原标题:怎样用Python制作好玩的GIF动图 作者: 景略集智 https://jizhi.im/blog/post/pytogif 程序员共读整理发布,转载请联系作者获得授权 之前我们分享过用Py ...

  2. python 制作gif-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  3. python制作gif动图_怎样用Python制作好玩的GIF动图

    原标题:怎样用Python制作好玩的GIF动图 作者: 景略集智 https://jizhi.im/blog/post/pytogif 程序员共读整理发布,转载请联系作者获得授权 之前我们分享过用Py ...

  4. 制作gif动图python_利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  5. 超炫酷的枪械3D动图,喜欢的不得了!

    全世界只有3.14 % 的人关注了 爆炸吧知识 加拿大安省3D视觉设计师盖瑞斯·福勒制作的枪械动图,直观展示了枪械的工作过程及原理,每次他更新动图都超爱的,喜欢的不得了! ▲枪械动图,连退弹过程都做出 ...

  6. CSDN超简单的上传gif动图方法

    还不会上传gif图片?非常简单 我们可以下载一个 gifcam 的软件,直接百度下载即可,就是下面这个 下载好之后点击录制就ok,可以根据自己的需要调节大小 还可以捕捉鼠标.全屏等操作,看个人需求了 ...

  7. python画动图-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  8. pythongif字符动图,利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

  9. python画动态图-利用Python如何制作好玩的GIF动图详解

    前言 之前我们分享过用Python进行可视化的9种常见方式.其实我们还能让可视化图形逼格更高一些,今天就分享一下如何让可视化秀起来:用Python和matplotlib制作GIF图表. 假如电脑上没有 ...

最新文章

  1. windows下SVN使用 Add指令、Undo Add指令
  2. centerOs-6.8的安装
  3. 本地仓库管理权限问题
  4. 语音聊天室 html,聊天室 - HTML - php中文网博客
  5. php单表显示动态下拉框,PHP:使用optgroup动态下拉列表
  6. nacos启动失败:org.springframework.boot.web.server.WebServerExceptio
  7. python3.4学习笔记(九) Python GUI桌面应用开发工具选择
  8. linux内核优化策略,linux系统调优小结
  9. 修改10g RAC public or private or virtual IP [Oracle]
  10. Staked 回应节点遭到 slash 惩罚:由技术性问题导致,将全额赔偿受影响客户
  11. 给WPF文字加多条修饰线
  12. Centos7升级Python2到Python3
  13. Sprig 面试中 问及 DI,IOC, AOP
  14. 计算机 外存储能直接被cpu处理??,cpu可直接处理外存上的信息吗?_常见问题解析...
  15. java万年历算法_寿星万年历---java算法实现
  16. UReport2报表序号展示
  17. linux chmod 755
  18. 图像处理农业应用sci_SCI征稿通知
  19. 关于网络拓扑图,你想知道的都在这
  20. 201621123068 Week03-面向对象入门

热门文章

  1. uni-app学习路线 - 计划
  2. MobaXterm如何修改字体
  3. 畅想未来计算机和人工智能的应用,人工智能在生活中的应用及展望
  4. LTE与VOLTE基础知识(1)
  5. 类模板与函数模板区别
  6. 基于Citespace和vosviewer文献计量学可视化SCI论文高效写作方法
  7. 计算机键盘的功能键在哪,台式电脑home键在哪里(有关电脑按键作用介绍)
  8. 论文投稿指南——中文核心期刊推荐(力学)
  9. ubuntu20.04未找到Wi-Fi适配器
  10. java 二元组_java里有类似于二元组之类的数据结构么?