import json
from pyecharts.charts import Map
from pyecharts import options as opts# 首先打开文件获取数据
f = open("/Desktop/python/Project/数据可视化/疫情.txt", "r", encoding="UTF-8")
data = f.read()# 字符串转化成json数据
data_json = json.loads(data)# 对数据进行处理
# 首先获取包含地区和确诊人数的列表
data = data_json['areaTree'][0]["children"][3]["children"]# 定义地区名称列表和地区确诊人数列表。
name_lsit = []
conf_list = []
for x in data:name_lsit.append(x["name"]+"市")conf_list.append(x["total"]["confirm"])print(name_lsit)
print(conf_list)
# 准备地图对象
map = Map()# 准备数据,将名称和确诊人数构成一个元组列表。
# 查找连个列表的长度是否相等。
print(len(name_lsit))
print(len(conf_list))# 使用zip函数,将元组添加到空列表中。
data_list = list(zip(name_lsit,conf_list))# 添加数据
map.add("河南疫情确诊人数图",data_list, "河南")# 设置全局变量
map.set_global_opts(# 标题title_opts= opts.TitleOpts(title="河南疫情确诊图"),# 是否显示分段visualmap_opts=opts.VisualMapOpts(is_show=True, is_piecewise=True,pieces =[{"min": 1,"max":49,"label": "1-49人", "color": "#CCFFFF"},{"min": 50,"max":99,"label": "50-99人", "color": "#FFFF99"},{"min": 100,"max":199,"label": "100-199人", "color": "#FF9966"},{"min": 200,"max":299,"label": "200-299人", "color": "#CC3333"},{"min": 300,"label":"300人以上", "color": "#990033"}]))# 生成地图
map.render("河南疫情确诊人数.html")
f.close()
效果演示: