超火动态排序疫情变化图,
这次我们用 Plotly来绘制
各位同学早上好,我是 Lemonbit 。
国内的疫情基本进入扫尾阶段了,但国外疫情还处于爆发的高峰期。以前是咱们国家各个省对口支援湖北的一个市,现在开启一个省支援一个国家的模式。
大国风范,为祖国点赞!!!
近期,我写了几篇用 Plotly 来演示全球疫情情况的文章,如下:
作为延伸,今天,来分享用 Plotly 来制作动态排名各个国家疫情变化情况的柱状图。先来看最终的效果:
上图中,国家排名以及确诊数量,都是动态变化的。类似的图,估计大伙已经看到用其他工具制作的,今天,我们来看看如何用 Plotly 来实现。
数据来源
本次我们主要来可视化分析国外疫情的发展情况。疫情的数据来源于开源项目 Akshare,由于使用该项目获取数据时,有时不太稳定,可能会遇到连接失败的情况。所以,这里我提供了保存好的数据供大家练习使用,本文的代码及数据文件在文末提供了获取方式。
当然,大家也可以使用 Akshare 的数据,因为会不时的更新,如果连接中断的话,换个时间重试下就好。
准备工作
照例,还是先介绍下我运行的环境。
Mac 系统
Anaconda(Python 3.7)
Jupyter Notebook
我是在 Jupyter Notebook 中运行代码的,本次使用到的 Python 库包括 akshare, pandas, plotly 等,导入如下:
import akshare as ak
import pandas as pd
import plotly
import plotly.graph_objs as go
from plotly.offline import iplot, init_notebook_mode,plot
import plotly.express as px
from datetime import datetime
# 在PyCharm、VS Code等IDE中运行时,
# 需要注释下面这行代码
init_notebook_mode()
使用的几个 Python 库的版本如下:
print(f'pandas version: {pd.__version__}')
print(f'akshare version: {ak.__version__}')
print(f'plotly version: {plotly.__version__}')
# pandas version: 1.0.1
# akshare version: 0.4.27
# plotly version: 4.5.0
接着,我们读取已获得的数据(已保存的数据是截至3月16日)。
# 从 akshare 获取数据
# df_all_history = ak.epidemic_history()
# 从csv文件获取数据,这个数据文件的数据截止到3月10