echarts做全球疫情时序动态变化图-轮播图

import json
from pyecharts.charts import Timeline, Map
from pyecharts import options as opts
with open('./timeseries.json','r') as f:
    countries = json.load(f)

def render_map(date_list, cy_name_list, ncov_data):
    tl = Timeline()  # 创建时间线轮播多图,可以让图形按照输入的时间动起来
    #  is_auto_play:自动播放
    #  play_interval:播放时间间隔,单位:毫秒
    #  is_loop_play:是否循环播放
    tl.add_schema(is_auto_play=True, play_interval=50, is_loop_play=False)

    for i,date_str in enumerate(date_list):  # 遍历时间列表
        map0 = (
            Map()  # 创建地图图表
            # 将国家名 cy_name_list 以及各国当天确诊病例 ncov_data[date_str] 加入地图中
            .add("全球疫情趋势", [list(z) for z in zip(cy_name_list, ncov_data[date_str])],
                 "world", is_map_symbol_show=False)
            .set_series_opts(label_opts=opts.LabelOpts(is_show=False))  # 不显示国家名
            .set_global_opts(
                title_opts=opts.TitleOpts(title="%s日" % date_str),  # 图表标题
                visualmap_opts=opts.VisualMapOpts(max_=20000),   # 当确诊病例大于80 ,地图颜色是红色
            )
        )
        tl.add(map0, "%s" % date_str)  # 将当天的地图状态加入时间线中

    tl.render('nowconfirm.html')  # 生成最终轮播多图,会在当前目录创建 render.html 文件


date_list=[]
for i in countries['Afghanistan']:
    date_list.append(i['date'])
cy_name_list=[]
for i in countries:
    cy_name_list.append(i)
ncov_data={}
for item,i in enumerate(date_list):
    ncov_data[i]=[]
    for j in cy_name_list:
        ncov_data[i].append(countries[j][item]['confirmed']-countries[j][item]['deaths']-countries[j][item]['recovered'])

render_map(date_list,cy_name_list,ncov_data)

效果
echarts做全球疫情时序动态变化图-轮播图_第1张图片

你可能感兴趣的:(echarts做全球疫情时序动态变化图-轮播图)