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

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()

效果图:

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

代替人格

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值