昨天发了篇 8行Python代码轻松绘制新冠疫情地图,介绍使用PyEcharts绘制疫情地图,有朋友就问是否能绘制动态地图,那必须能够。
须要用到一个相似时间轴的Timeline组件。具体原理就是先建立一个时间轴,而后往里面添加制做好的不一样时间的地图,若是地图不少,写一个循环自动读取数据就能够了。
咱们先来看看绘制的动态地图效果。html
本文继续采用v1.x版本进行绘制地图。
首先导入须要使用的模块:echarts
import pandas from pyecharts.charts import Map from pyecharts import options as opts from pyecharts.charts import Timeline
而后导入须要数据,数据是这样的,存在Excel表格中:ide
长按识别下方二维码,并关注公众号
回复“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
最后就能够使用每日地图绘制函数绘制地图了excel
#建立时间轴对象 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()方法能够将地图渲染为html timeline.render('全国疫情动态地图.html')
长按识别下方二维码,并关注公众号,回复“PY”领取1GB Python数据分析资料
1.回复“PY”领取1GB Python数据分析资料
2.回复“BG”领取5GB 名企数据分析报告code