Python数据可视化练习——地图

需求:利用pyecharts模块实现疫情地图
效果展示:

一、导入json模块用于将json数据转换为Python数据

        导入Map包用于绘制地图

        导入options包用于地图选项设置

import json
from pyecharts.charts import Map
from pyecharts.options import *

二、数据预处理

1、从文件中读取数据

f = open("D:/疫情.txt", "r", encoding="UTF-8")           #打开数据文件
data = f.read()                                         #读取全部内容
f.close()                                               #关闭文件

2、将读取到的JSON数据转换为Python数据

data_dict = json.loads(data)                                 #JSON数据转Python数据
sichuan_province_data_list = data_dict["areaTree"][0]["children"][12]["children"]        #筛选到四川省各市数据

3、组装各个市的名称与确诊人数为元组,并将各省份据封装到绘图所需数据列表中

data_list = []            #定义一个空列表,用于储存绘图数据
for city_data in sichuan_province_data_list:
    if city_data["name"] == "阿坝":
        city_name = city_data["name"] + "藏族羌族自治州"
    elif city_data["name"] == "凉山":
        city_name = city_data["name"] + "彝族自治州"
    elif city_data["name"] == "甘孜":
        city_name = city_data["name"] + "藏族自治州"
    else:
        city_name = city_data["name"] + "市"        #原始数据中各市只有名称,没有加上“市”字眼,会影响后续绘图
    city_confirm = city_data["total"]["confirm"]
    data_list.append((city_name, city_confirm))

二、绘图

#绘图
map = Map()       #得到图表对象
map.add("四川省确诊人数", data_list, "四川")        #添加数据

#全局选项配置:设置不同颜色以表示确诊人数多少
map.set_global_opts(
    title_opts=TitleOpts(title= "四川省确诊人数图", pos_left="center", pos_bottom="1%"),
    visualmap_opts=VisualMapOpts(
        is_show=True,        #是否显示
        is_piecewise=True,      #是否分段
        pieces=[                #分段规则
            {"min": 1, "max": 9, "label": "1-9人", "color": "#CCFFFF"},
            {"min": 10, "max": 49, "label": "10-49人", "color": "#FFFF99"},
            {"min": 50, "max": 99, "label": "50-99人", "color": "#FF9966"},
            {"min": 100, "max": 199, "label": "100-199人", "color": "#FF6666"},
            {"min": 200, "max": 499, "label": "200-499", "color": "#CC3333"},
            {"min": 500, "label": "500人", "color": "#990033"},
        ]
    )
)
map.render("四川省疫情地图.html")

三、得到的图像文件,使用浏览器打开即可

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值