Python使用pyechart分析疫情确诊人数图(2024)

发布时间:2024年01月19日
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']获取字典中'areaTree'的关键值,返回的是一个长度为一的列表。
# data  = data_json['areaTree'][0]获取列表中的第一个元素,返回的是一个字典。
data = data_json['areaTree'][0]

# 获取字典中的地区名称数据,返回的是一个列表,用一个空列表接收。(if name == "香港" or "澳门":这是错误的语法格式)
data = data["children"]
name_list = []
for x in data:
    name = x["name"]
    if name == "香港" or name == "澳门":
        name = name + "特别行政区"
    elif name == "新疆":
        name = name + "维吾尔自治区"
    elif name == "西藏" or name == "内蒙古":
        name = name + "自治区"
    elif name == "宁夏":
        name = name + "回族自治区"
    elif name == "广西":
        name = name + "壮族自治区"
    elif name == "北京" or name == "天津" or name == "上海" or name == "重庆":
        name = name + "市"
    else:
        name = name + "省"
    name_list.append(name)


# 获取确诊人数并储存到列表中
conf_list = []
for t in data:
    conf_data = t["total"]["confirm"]
    conf_list.append(conf_data)


# 准备地图对象
map = Map()

# 准备数据,将名称和确诊人数构成一个元组列表。
# 查找连个列表的长度是否相等。
print(len(name_list))
print(len(conf_list))

# 将元组添加到空列表中
data_list = []
i = 0
while i < 34:
    temp = (name_list[i], conf_list[i])
    data_list.append(temp)
    i += 1

# 添加数据
map.add("中国疫情确诊人数图", data_list, "china")

# 设置全局变量
map.set_global_opts(
    # 标题
    title_opts= opts.TitleOpts(title="全国疫情确诊图"),
    # 是否显示分段
    visualmap_opts=opts.VisualMapOpts(
        is_show=True, is_piecewise=True,
        pieces =
        [
            {"min": 1,"max":99,"label": "1-99人", "color": "#CCFFFF"},
            {"min": 100,"max":999,"label": "100-999人", "color": "#FFFF99"},
            {"min": 1000,"max":4999,"label": "500-999人", "color": "#FF9966"},
            {"min": 5000,"max":9999,"label": "1000-1499人", "color": "#CC3333"},
            {"min": 10000,"label":"10000人以上", "color": "#990033"}
        ]
        )
    )


# 生成地图
map.render("map.html")
f.close()

效果图:

文章来源:https://blog.csdn.net/m0_61843258/article/details/135705094
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。