动态新冠疫情地图Python轻松画

昨天发了篇 8行Python代码轻松绘制新冠疫情地图,介绍使用PyEcharts绘制疫情地图,有朋友就问是否能绘制动态地图,那必须可以。

需要用到一个类似时间轴的Timeline组件。具体原理就是先创建一个时间轴,然后往里面添加制作好的不同时间的地图,如果地图很多,写一个循环自动读取数据就可以了。

我们先来看看绘制的动态地图效果。

动态新冠疫情地图Python轻松画

本文继续采用v1.x版本进行绘制地图。

首先导入需要使用的模块:

import pandas
from pyecharts.charts import Map
from pyecharts import options as opts
from pyecharts.charts import Timeline

然后导入需要数据,数据是这样的,存在Excel表格中:

动态新冠疫情地图Python轻松画

长按识别下方二维码,并关注公众号
回复“
DTX”获取案例数据

动态新冠疫情地图Python轻松画


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()方法可以将地图渲染为html 
timeline.render('全国疫情动态地图.html')
THE END
分享
二维码
海报
动态新冠疫情地图Python轻松画
昨天发了篇 8行Python代码轻松绘制新冠疫情地图,介绍使用PyEcharts绘制疫情地图,有朋友就问是否能绘制动态地图,那必须可以。 需要用到一个类似时间轴的Tim……
<<上一篇
下一篇>>