昨天发了篇 8行Python代码轻松绘制新冠疫情地图,介绍使用PyEcharts绘制疫情地图,有朋友就问是否能绘制动态地图,那必须可以。
需要用到一个类似时间轴的Timeline组件。具体原理就是先创建一个时间轴,然后往里面添加制作好的不同时间的地图,如果地图很多,写一个循环自动读取数据就可以了。
我们先来看看绘制的动态地图效果。
本文继续采用v1.x版本进行绘制地图。
首先导入需要使用的模块:
import pandasfrom pyecharts.charts import Mapfrom pyecharts import options as optsfrom pyecharts.charts import Timeline
然后导入需要数据,数据是这样的,存在Excel表格中:
长按识别下方二维码,并关注公众号
回复“DTX”获取案例数据
data = pandas.read_excel(\'C:/Python/xgyq.xlsx\',sheet_name=\'2\', index_col=\'time\')#取出省份列表attr = data.columns.tolist()#统计数据条数n = len(data.index)
然后定义一个每日地图绘制函数
#定义每日地图绘制函数def map_visualmap(sequence, date) -> Map:c = (Map().add(date, sequence, maptype=\"china\").set_global_opts(title_opts=opts.TitleOpts(title=\"全国疫情动态地图\"),visualmap_opts=opts.VisualMapOpts(max_=150),))return c
最后就可以使用每日地图绘制函数绘制地图了
#创建时间轴对象timeline = Timeline()for i in range(n):#取每日数据row = data.iloc[i,].tolist()#将数据转换为二元的列表sequence_temp = list(zip(attr,row))#对日期格式化以便显示time = format(data.index[i], \"%Y-%m-%d\")#创建地图map_temp = map_visualmap(sequence_temp,time)#将地图加入时间轴对象timeline.add(map_temp,time).add_schema(play_interval=360)# 地图创建完成后,通过render()方法可以将地图渲染为htmltimeline.render(\'全国疫情动态地图.html\')
如果你喜欢本文,可以点击右下角在看
如果你在跟着学习,请在留言区留言:打卡
如果你刚看到本文,可以查看本系列历史文章跟着学习:
跟小白学Python数据分析——Anaconda安装
跟小白学Python数据分析——使用spyder
跟小白学Python数据分析——数据导入1
跟小白学Python数据分析——数据导入2
跟小白学Python数据分析——描述性统计分析
跟小白学Python数据分析——分组分析
8行Python代码轻松绘制新冠疫情地图
长按识别下方二维码,并关注公众号,回复“PY”领取1GB Python数据分析资料
1.回复“PY”领取1GB Python数据分析资料
2.回复“BG”领取5GB 名企数据分析报告