社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

美国确诊超100万!教你用Python画出全球疫情动态图

CDA数据分析师 • 5 年前 • 1049 次点击  




 CDA数据分析师 出品  

作者:Mika

数据:真达  

后期:泽龙 

【导语】:今天我们教你用Python绘制全球疫情动态图,技术部分请看第二部分。公众号后台,回复关键字“ 全球疫情”获取完整数据。

Show me data,用数据说话

今天我们用Python绘制 全球疫情动态图

点击下方视频,先睹为快:


目前,全球新冠疫情还十分严峻。昨夜今晨,疫情突破多个标志性的统计节点。其中,全球累计确诊近296万例,累计死亡超20万例美国累计确诊超100万例,西班牙和意大利累计确诊均超过20万例。

 


01


全球疫情严峻 

美国确诊超100万

 

根据世卫组织最新实时统计数据,截至欧洲中部时间28日10时(北京时间28日16时),全球范围内,新冠确诊病例较前一日增加76026例,达到2954222例;死亡病例较前一日增加3932例,达到202597例

 


美国约翰斯·霍普金斯大学统计数据显示,在美国东部时间28日14时50分(北京时间29日2时50分)的数据显示,美国新冠确诊病例升至1002498例,死亡病例为57533例,确诊病例和死亡病例数都是全球最多。

 


那么作为一个技术号,我们也十分关注全球疫情的情况,之前我们写了篇:

👇👇

用Python绘制—疫情影响下 美国申请失业险人数动态图

 

今天我们换个角度,用Python教你画出全球疫情动态图,话不多说!下面看到具体步骤:

 


02



用Python绘制

全球疫情动态图



此次我们使用Pandas+Flourish制作疫情动态数据可视化视频,整个流程分为以下三步:


  1. 从网上获取数据
  2. 使用Pandas进行数据整理
  3. 使用Flourish的可视化模板制图


一、数据整理


我们使用pandas读入数据,本次使用数据来自于世卫组织-欧洲疾控中心统计网站,数据统计了2020.13.31日至2020.04.29日共207个国家的疫情日新增数据


*import* *pandas* *as* *pd*


/# 读入数据/
df_cov = pd.read_excel(‘./data/COVID-19-geographic-disbtribution-worldwide-2020-04-29.xlsx’) 
df_cov[‘dateRep’] = df_cov.dateRep.astype(‘str’)
df_cov.head() 



首先我们需要明确数据整理的目的,也就是我们需要将数据整理成怎样的格式,我们从Flourish网站找到了一份动态条形图的示例数据集,数据格式如下所示:


df_sample = pd.read_csv(‘./data/Data.1588152303036.csv’)
df_sample.head() 




观察数据集,我们明确需要将数据整理成以上的格式,需要进行以下几步工作:


  1. 提取数据,此处我们提取日期(dateRep)、国家(countriesAndTerritories)、日新增确诊(cases)三列即可

  2. 通过日新增确诊人数计算每日累计确诊人数

  3. 对日期列进行摊平,按照国家和日期进行数据透视操作。

  4. 在网站上找到国旗url的地址,并合并数据集,增加Image_url列

  5. 通过翻译软件API获取中文名称。


具体代码如下,其中步骤4和步骤5为附加步骤,代码暂略。


/# 提取数据/
df_sel = df_cov[['dateRep''cases''countriesAndTerritories']]


/# 累计求和-计算每日累计新增数据/
df_all = pd.DataFrame()


*for* countries *in* df_sel['countriesAndTerritories'].unique().tolist():
    df_one = df_sel[df_sel['countriesAndTerritories'] == countries] 
    df_one = df_one.sort_values('dateRep')
    df_one['cases_sum'] = df_one.cases.expanding().sum() 
    df_all = df_all.append(df_one, ignore_index=*True*) 

/# 数据摊平和数据透视/
df_expand = df_all.pivot_table(index='countriesAndTerritories', columns='dateRep', values='cases_sum'


/# 空值填0/
df_expand = df_expand.fillna(0)
df_expand = df_expand.reset_index(drop=*False*)  
df_expand.head() 


整理数据如上图所示。接下来合并中文国家名和国旗URL数据,最终得到的数据格式如下,将数据导出成Excel格式。


df.head() 



二、数据可视化


我们使用在线网站flourish进行制作,这个网站里提供了非常多的数据可视化模板,我们要做的工作就是从网上找到数据,然后将数据导入到模板里,设置好相应的速度、颜色、图标等信息就完成了。



操作的步骤非常简单。


第一步找到我们要制作的动态柱状变化图模板,可以看到,实例的第一个图形就是动态条形图,模板地址:https://app.flourish.studio/visualisation/2154934/edit


点击"Make your own",然后点击"Create visualisation" - 点击上方“Data”栏,我们就能看到数据就放在这里,然后点击“uplode data file”上传我们要用到的数据表格。


模板本身限定了表格的格式,如下图所示,我们设置B列是指标名称、C列是存放图标的URL列,D列之后是时间变化列。



第二步就是优化可视化图表,点击上方的“Preview”,就会发现模板自动就已经开始按照时间开始滚动了!


我们还可以进行一些美化和处理,右侧有个编辑栏,主要是要进行标签、颜色、播放速度、标尺大小、时间显示格式等细节的美化,按照自己的风格设置好后,一个常见的可视化动态视频就做完了。



最后配上音乐,让我们一起看到成品吧!



关注CDA数据分析师公众号
回复关键字“全球疫情” 
获取详细数据代码

CDA数据分析师 


文出品:CDA数据分析师(ID: cdacdacda)



📚推荐阅读 READ MORE

(点击下方图片阅读)

数据解读:拿下60亿流量的《惊雷》都是哪些人在听?

8.3分口碑炸裂!潘粤明版《鬼吹灯》到底好看在哪儿?

 

📌CDA课程咨询


喜欢本篇内容请点个“在看”哦!❤️

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/62436
 
1049 次点击