解决Python中pyecharts地图数据不显示的问题

问题背景:

在使用pyecharts的map中国地图当中,数据结构已经构成,但是运行时候之后数据并没有显示出来,如下图:

 

 原因分析:

新版pyecharts的map中国地图,省份参数需要加上"省“,例如:“安徽”,就必须要是安徽省,这样数据才能在地图中显示

问题解决

首先定义一个方法,我这边起名province,然后在方法中定义出一个含有中国34个省自治区的全称的列表,使用for循环遍历所有的列表中的省份,依次判断传入的参数是否包含在列表元素中,如果包含,则返回对应的列表元素,我这里用了两个方法,一个是find函数,一个是 in 函数

def province(pro):
    provinces = ["北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省",
                 "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省",
                 "青海省", "宁夏回族自治区", "新疆维吾尔自治区", "台湾省", "香港特别行政区", "澳门特别行政区"]

    # for p in provinces:
    #     if p.find(pro) >= 0:
    #         return p
    #         break

    for p in provinces:
        if pro in p:
            return p
            break

以下是完整代码,和运行之后的效果:

from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts,TitleOpts
import json

# 返回带有省的方法
def province(pro):
    provinces = ["北京市", "天津市", "河北省", "山西省", "内蒙古自治区", "辽宁省", "吉林省", "黑龙江省", "上海市", "江苏省", "浙江省", "安徽省", "福建省", "江西省",
                 "山东省", "河南省", "湖北省", "湖南省", "广东省", "广西壮族自治区", "海南省", "重庆市", "四川省", "贵州省", "云南省", "西藏自治区", "陕西省", "甘肃省",
                 "青海省", "宁夏回族自治区", "新疆维吾尔自治区", "台湾省", "香港特别行政区", "澳门特别行政区"]

    # for p in provinces:
    #     if p.find(pro) >= 0:
    #         return p
    #         break

    for p in provinces:
        if pro in p:
            return p
            break


file = open("E:/newPython/疫情.txt","r",encoding="UTF-8")

data = file.read()

data_dict = json.loads(data)

province_data_list = data_dict["areaTree"][0]["children"]

data_list = []  # 绘图所需要用的数据列表

for province_data in province_data_list:
    province_name = province(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("全国疫情地图"),
    visualmap_opts=VisualMapOpts(
        is_show=True,           # 是否显示
        is_piecewise=True,      # 是否分段
        pieces=[
            {"min":1,"max":99,"lable":"1~99人","color":"#CCFFFF"},
            {"min":100,"max":999,"lable":"1~999人","color":"#FFFF99"},
            {"min":1000,"max":4999,"lable":"1~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")
file.close()

最终效果

 ps:第一次写博客 多谢支持~

物联沃分享整理
物联沃-IOTWORD物联网 » 解决Python中pyecharts地图数据不显示的问题

发表评论