使用Pyecharts构建Map对象无法显示颜色--解决

使用Pyecharts构建Map对象无法显示颜色--解决

码农世界 2024-05-23 前端 101 次浏览 0个评论

我们在做数据可视化的过程中,可能需要使用到地图作为数据可视化的工具;

包括世界地图、国家地图、省市区地图等;

如果在你设置好颜色数据匹配后,可视化地图未显示对应数据的颜色,那么请检查是否出现以下情况:

1. 设置的数据区间未达到可视化数据的范围

        比如: 北京人口:500人

        可视化图例设置的上限为100人, 那么500不在0-100之间,就不会可视化出来

2. 地图内国家名称、省市区等名称是否符合pyecharts规范(内部定义的)

        比如:北京----北京市

                    台湾---台湾省

                       内蒙古---内蒙古自治区

 必须填写官方用命

这是两种最长出现的问题。

首先我给出一个实例代码:

from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, TitleOpts, LegendOpts
# 构建一个地图对象
map = Map()
# 数据
data = [
    ('北京市', 999),
    ('上海市', 599),
    ('台湾省', 300),
    ('湖南省', 299),
    ('河北省', 999),
    ('河南省', 868),
]
map.add("测试地图", data, maptype='china')
map.set_global_opts(
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "label": "1-9", "color": "#CCFFFF"},
            {"min": 100, "max": 399, "label": "100-399", "color": "#FF6666"},
            {"min": 400, "max": 599, "label": "400-599", "color": "#990033"},
            {"min": 600, "label": "600-", "color": "#889977"},
        ]
    ),
    title_opts=TitleOpts(title="测试地图", pos_left='center', pos_bottom='2%'),
    legend_opts=LegendOpts(is_show=True)
)
# 绘图
map.render(path='render.html')

数据可视化展示:

高级实例,注释加代码:

import json
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts, TitleOpts, LegendOpts
# 读取数据文件
with open('疫情.txt', 'r', encoding='utf-8') as f:
    data = f.read()
    # print(data)
# 关闭文件
# 取出各个省的数据
# json ---> python字典
data_py = json.loads(data)
# 取出省份
province_data_list = data_py['areaTree'][0]["children"]
# 组装每个省的确诊人数为元组,并封装入列表
list = []
for province_data in province_data_list:
    province_name = province_data['name']
    province_confirm = province_data['total']['confirm']
    list.append([province_name, province_confirm])
# 由于各省市不够规范所以对数据进行规范处理  直辖市自治区特别行政区单独处理,省份统一处理
zizhiqu = ['内蒙古', '宁夏', '西藏', '新疆', '广西']
special_area = ['澳门', '香港']
municipality = ['北京', '上海', '重庆', '天津']
for pro in list:
    if pro[0] in special_area:
        pro[0] = pro[0] + '特别行政区'
    elif pro[0] in municipality:
        pro[0] = pro[0] + '市'
    elif pro[0] in ['内蒙古', '西藏']:
        pro[0] += '自治区'
    elif pro[0] == '广西':
        pro[0] = '广西壮族自治区'
    elif pro[0] == '新疆':
        pro[0] = '新疆维吾尔自治区'
    elif pro[0] == '宁夏':
        pro[0] = '宁夏回族自治区'
    else:
        pro[0] = pro[0] + '省'
# 创建地图对象
print(list)
map = Map()
# 添加数据    list可以是tuple 也可以是 list  不必要list转换为tuple
map.add("国内疫情", list, maptype='china')
# 设置全局配置选项 设置分段视觉映射
map.set_global_opts(
    visualmap_opts=VisualMapOpts(
        is_show=True,
        is_piecewise=True,
        pieces=[
            {"min": 1, "max": 99, "label": "1-99", "color": "#CCFFFF"},
            {"min": 100, "max": 299, "label": "100-299", "color": "#FF6666"},
            {"min": 300, "max": 599, "label": "300-599", "color": "#990033"},
            {"min": 600, 'max': 899, "label": "600-899", "color": "#889977"},
            {"min": 900, 'max': 1299, "label": "900-1299", "color": "#88AA77"},
            {"min": 1299, 'max': 1599, "label": "1299-1599", "color": "#AAAA77"},
            {"min": 1599, "label": "1599-", "color": "#88AAAF"},
        ]
    ),
    title_opts=TitleOpts(title='国内疫情地图', pos_left='center', pos_bottom='1%'),
    legend_opts=LegendOpts(is_show=True)
)
# 绘图
map.render()

转载请注明来自码农世界,本文标题:《使用Pyecharts构建Map对象无法显示颜色--解决》

百度分享代码,如果开启HTTPS请参考李洋个人博客
每一天,每一秒,你所做的决定都会改变你的人生!

发表评论

快捷回复:

评论列表 (暂无评论,101人围观)参与讨论

还没有评论,来说两句吧...

Top