Python+PowerBi绘制全球各地区疫情动态图
先看效果
主要使用Python调用现成的接口获取并处理数据,然后导入到PowerBi中通过Animated Bar Chart Race可视化控件绘制。
数据获取
这里使用的是Python,通过AkShare的数据接口,获取全球各地区疫情历史数据。
import akshare as ak
epidemic_df = ak.epidemic_history()
数据处理
通过第一步获取的数据,我们可以看到,它包含的字段比较全面。考虑到我们做的动态图是全球各地区(除了中国之外)累积确诊数的变化,因此我们需要对原始数据进行相关处理,具体如下:
#只取日期、国家和确诊数,其他字段不需要
epidemic_df = epidemic_df[['date','country','confirmed']]
#在这里哦只选择2020年1月20日之后数据
epidemic_df= epidemic_df[epidemic_df['date']>='2020-01-20']
#过滤中国数据
epidemic_df = epidemic_df[epidemic_df['country']!='中国']
数据导入Powerbi
通过上面 数据获取及处理后,我们整合好代码。
然后打开PowerBi,在获取数据中选择Python脚本,如下图:
键入整合好的全部代码段
import akshare as ak
epidemic_df = ak.epidemic_history()
#过滤其他参数
epidemic_df = epidemic_df[['date','country','confirmed']]
#只选择2020年1月20日之后数据
epidemic_df = epidemic_df[epidemic_df['date']>='2020-01-20']
#过滤中国数据
epidemic_df = epidemic_df[epidemic_df['country']!='中国']
确定后,会自动进行数据连接
数据导入后,新增一列“序列”
序列 = FORMAT([date],"yyyymmdd")
制作动态图
插件添加
数据加载完成后,需要在 AppSource中找到插件 Animated Bar Chart Race
动态图绘制
将相关字段拖入到对应的模块即可完成动态图的绘制
其他参数设置
常见参数有 显示前N个,动图序列(时间)变化速度,标题,背景等等。具体可以自行探索
自动刷新数据
因为数据来源是Python脚本,因此当你打开该pbix文件后,直接进行刷新即可完成最新数据更新及动图更新。
最后,希望疫情早日结束。加油,全球同胞们~