使用python语言、pyecharts实现地图可视化

 

 pyecharts官网:https://pyecharts.org/#/

画廊参考:https://gallery.pyecharts.org/#/


实现步骤

一、导入

导入可能使用的包

import json
from pyecharts.charts import Map # 使用地图
from pyecharts.options import TitleOpts # 地图标题
from pyecharts.options import VisualMapOpts # 地图分段

二、读取文件

将读取的文件内容以字符串形式保存到data里面

f = open("D:/疫情.txt","r",encoding="UTF-8")
data = f.read()
f.close() # 使用完文件,关闭

三、获取数据

将data保存的字符串转换为python的字典类型。

然后获取字典下的数据。

data_dict = json.loads(data) #json转换为python
province_data_list = data_dict["areaTree"][0]["children"]

四、组装数据

 使用列表保存多个元组元素。

data_list = []
for province_data in province_data_list:
    province_name = province_data["name"] # 省份名称
    province_confirm = province_data["total"]["confirm"] # 确诊人数
    data_list.append((province_name,province_confirm)) # 将省份对应确诊人数

五、创建地图

创建地图对象

map = Map()

添加数据

map.add("各省确诊人数",data_list,"china")

设置全局配置,定制分段视觉映射

map.set_global_opts(
    title_opts=TitleOpts(title="全国疫情地图"),# 标题
    visualmap_opts=VisualMapOpts(   # 视觉映射配置,地图各省份分段显示颜色
        is_show=True,
        is_piecewise=True, # 是否分段
        pieces=[
            {"min":1,"max":99,"lable":"1-99人","color":"#CCFFFF"},
            {"min":100,"max":999,"lable":"100-999人","color":"#FFFF99"},
            {"min":1000,"max":4999,"lable":"1000-4999人","color":"#FF9966"},
            {"min":5000,"max":9999,"lable":"5000-9999人","color":"#FF6666"},
            {"min":10000,"max":99999,"lable":"10000-99999人","color":"#CC3333"},
            {"min":100000,"lable":"100000+人","color":"#990033"}
        ]
    )
)

绘图

map.render("全国疫情地图.html")

运行,打开.html文件即可。

省份可视化实现

 

代码:

# 导入
import json
from pyecharts.charts import Map
from pyecharts.options import *
# 读取文件
f = open("D:/疫情.txt","r",encoding="UTF-8")
data = f.read()
# 关闭文件
f.close()
# json数据转换为python字典
data_dict = json.loads(data)
# 获取山东省数据
cities_data = data_dict["areaTree"][0]["children"][11]["children"]
# 准备数据为元组存入list
data_list=[]
for city_data in cities_data:
    city_name = city_data["name"]+"市"
    city_confirm = city_data["total"]["confirm"]
    data_list.append((city_name,city_confirm))

print(data_list)
# 构建地图
map = Map()
map.add("山东省疫情分布",data_list,"山东")
# 设置全局选项
map.set_global_opts(
    title_opts=TitleOpts(title="山东省疫情地图"),
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
                    {"min":1,"max":99,"lable":"1-99人","color":"#CCFFFF"},
                    {"min":100,"max":999,"lable":"100-999人","color":"#FFFF99"},
                    {"min":1000,"max":4999,"lable":"1000-4999人","color":"#FF9966"},
                    {"min":5000,"max":9999,"lable":"5000-9999人","color":"#FF6666"},
                    {"min":10000,"max":99999,"lable":"10000-99999人","color":"#CC3333"},
                    {"min":100000,"lable":"100000+人","color":"#990033"}
                ]
    )
)
# 绘图
map.render("山东省疫情地图.html")

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐