Python数据可视化案例——地图

9,336次阅读
没有评论

共计 3266 个字符,预计需要花费 9 分钟才能阅读完成。

目录

简单案例:

进阶案例:


  继上文数据可视化案例,今天学习用 pyecharts 练习数据可视化案例 2 - 构建地图。

简单案例:

  首先构建一个简单的地图。

代码:

import json
from pyecharts.charts import Map

map=Map()
data=[('北京',99),
    ('上海',199),
    ('湖南',299),
    ('台湾',399),
    ('广东',499)
]

map.add('地图',data,'china')
map.render()

效果图:

Python 数据可视化案例——地图

添加全局属性:

  对我们设置了数据的省份设置不同梯度的颜色,颜色数值同样可以在“ac173.com”网站上(前端 -RGB 颜色对照)查看。

  注意:json 数据的地图没有地区名没有完整名称最新版的 pyecharts 无法识别,无法上色,(下面代码对此作了修改)。

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

map=Map()
data=[('北京市',99),
    ('上海市',199),
    ('湖南省',299),
    ('台湾省',399),
    ('广东省',499)
]

map.add('地图',data,'china')


map.set_global_opts(
    visualmap_opts=VisualMapOpts(
        is_show=True,  # 颜色显示
        is_piecewise=True, # 颜色分段
        pieces=[{'min':1,'max':9,'label':'1-9','color':'#564112'},
            {'min':10,'max':99,'label':'1-9','color':'#563012'},
            {'min':100,'max':500,'label':'1-9','color':'#561512'}
        ]
    )
)


map.render()

效果图:

Python 数据可视化案例——地图

进阶案例:

全国疫情确诊人数地图构建

步骤:

1、打开 json 数据复制到 ac173 查看视图。

2、在 pycharm 中读取 json 数据文件

3、将 json 数据转化为 python 字典。

4、获取我们需要的数据(首先获取整体,再局部)。

5、构建地图。

6、设置全局属性(颜色梯度设置,标题设置等)。

Python 数据可视化案例——地图Python 数据可视化案例——地图

完整代码:

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

# 读取文件
f=open('D:/ 疫情.txt','r',encoding="UTF-8")
data=f.read()
# 格式转化, 转换为 Python 字典
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_data['name']
    special_province_list = ['北京市', '上海市', '天津市', '重庆市', '新疆维吾尔自治区', '宁夏回族自治区', '西藏自治区', '内蒙古自治区']
    if province_name not in special_province_list:
        province_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,'label':'1-99 人','color':'#CCFFFF'},
            {'min':100,'max':999,'label':'100-999 人','color':'#FFFF99'},
            {'min':1000,'max':4999,'label':'1000-4999 人','color':'#FF9966'},
            {'min':5000,'max':9999,'label':'5000-9999 人','color':'#FF6666'},
            {'min':10000,'max':99999,'label':'10000-99999 人','color':'#CC3333'},
            {'min':100000,'label':'100000+ 人','color':'#990033'}
        ]
    )
)

# 绘图
map.render('全国疫情地图.html')

效果图:

Python 数据可视化案例——地图

  以同样的方法尝试练习构建一个河南省的疫情确诊图吧。

代码:


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

# 读取文件
f=open('D:/ 疫情.txt','r',encoding="UTF-8")
data=f.read()
# 关闭文件
f.close()
# 格式转化, 转换为 Python 字典
data_dict=json.loads(data)
# 获取数据
data_list=data_dict['areaTree'][0]['children'][3]['children']
# 循环列表获取市名和确诊人数
required_data_list=[]
for city_data in data_list:
    city_name=city_data['name']+'市' # 追加市
    city_confirm=city_data['total']['confirm']
    required_data_list.append((city_name,city_confirm))
# 手动添加济源市数据
required_data_list.append(('济源',5))
# 构建地图
map=Map()
# 向地图中添加数据
map.add('河南疫情确诊图',required_data_list,'河南')

# 添加全局属性
map.set_global_opts(title_opts=TitleOpts(title='河南疫情确诊图'),
visualmap_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':'1000-4999 人','color':'#FF9966'},
            {'min':5000,'max':9999,'label':'5000-9999 人','color':'#FF6666'},
            {'min':10000,'max':99999,'label':'10000-99999 人','color':'#CC3333'},
            {'min':100000,'label':'100000+ 人','color':'#990033'}
        ]
    )
)

map.render('河南省疫情确诊图.html')

效果图:

原文地址: Python 数据可视化案例——地图

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于2024-11-01发表,共计3266字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)