Python数据可视化教程:利用pyecharts绘制疫情地图【附案例】
目录
前言
一、导包
二、准备地图数据
三、准备数据
四、添加数据
五、设置全局选项
六、绘图
七、全国疫情地图案例
7.1 数据展示
7.2 具体操作与示例代码
八、绘制其他省份疫情数据地图
前言
Pyecharts 是一个基于 ECharts 的 Python 数据可视化库,允许用户使用 Python 语言生成各种类型的交互式图表和数据可视化。
ECharts 是百度开源的一个数据可视化 JS 库,而 Pyecharts 则是 ECharts 的 Python 封装,使得在 Python 中使用 ECharts 变得更加方便。Pyecharts 提供了一组简单而灵活的 API,使用户能够轻松地创建各种图表,包括但不限于折线图、柱状图、散点图、饼图、地图等。通过 pyecharts,用户可以使用 Python 语言处理和准备数据,然后使用简洁的代码生成交互式的图表,这些图表可以嵌入到 Web 应用程序中或保存为静态文件。
- 安装与配置:Pyecharts的安装相对简单,可以通过pip进行安装。安装完成后,用户可以根据需要对图表进行个性化配置。
- 丰富的图形类型:Pyecharts支持多种图表类型,包括但不限于柱状图、折线图、饼图等,满足不同的数据展示需求。
- 交互式图表:由于Pyecharts基于ECharts,所以生成的图表具有良好的交互性,用户可以通过鼠标和触摸等操作与图表进行交互。
- 适用多种场景:Pyecharts可以在不同的Web框架中使用,如Jupyter Notebook、Flask、Django等,使得在Web应用中展示图表变得非常方便。
- 易于使用:Pyecharts提供了简洁明了的API,即使是没有编程背景的用户也能通过简单的学习快速上手绘制图表
一、导包
from pyecharts.charts import Map
from pyecharts.options import VisualMapOpts
二、准备地图数据
map = Map()
三、准备数据
data = [
("北京市", 99),
("上海市", 199),
("湖南省", 299),
("台湾省", 399),
("广东省", 499),
]
四、添加数据
"china"代表使用中国地图。
map.add("测试地图",data, "china")
五、设置全局选项
map.set_global_opts(
visualmap_opts=VisualMapOpts(
is_show=True, # 是否现实颜色
is_piecewise=True, # 手动设置范围
pieces=[
{"min":1, "max":9, "lable":"1-9", "color":"#CCFFFF"},
{"min":10, "max":99, "lable":"10-99", "color":"#FF6666"},
{"min":100, "max":500, "lable":"100-500", "color":"#990033"},
]
)
)
六、绘图
map.render()
运行结果:
七、全国疫情地图案例
7.1 数据展示
数据文本展示:
数据格式化展示:
7.2 具体操作与示例代码
通过读取文件,将json数据转换为python数据,先获取到省份数据列表和确诊人数,再将省份与确诊人数组装到数据列表;后创建地图对象,将数据添加进去,就可以绘制图像。
import json
from pyecharts.charts import Map
from pyecharts.options import TitleOpts,VisualMapOpts
# 读取数据文件
f = open("D:\pydaima\8day速成python\shuju\疫情.txt", "r", encoding="UTF-8")
data = f.read()
# 关闭文件
f.close()
# 取到各省数据
yq_data = json.loads(data) # 将json转换为python字典
sf_data_list = yq_data["areaTree"][0]["children"] # 得到省份数据列表
# 组装省名称与数据的列表
data_list = [] # 绘制使用的数据列表
# 各省份全称列表
count = 0
sf_name_list = ['台湾省', '江苏省', '云南省', '河南省', '上海市', '湖南省', '湖北省', '广东省', '香港特别行政区', '福建省', '浙江省', '山东省', '四川省', '天津市', '北京市', '陕西省', '广西壮族自治区', '辽宁省', '重庆市', '澳门特别行政区', '甘肃省', '山西省', '海南省', '内蒙古自治区', '吉林省', '黑龙江省', '宁夏回族自治区', '青海省', '江西省', '贵州省', '西藏自治区', '安徽省', '河北省', '新疆维吾尔自治区']
for sf_data in sf_data_list:
sf_name = sf_name_list[count] # 省份名称
count += 1
sf_confirm = sf_data["total"]["confirm"] # 确诊人数
data_list.append((sf_name, sf_confirm))
print(sf_name)
# 创建地图对象
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":499, "lable": "1-499人", "color":"#d1db85"},
{"min":500, "max":999, "lable": "500-999人", "color":"#f9d80b"},
{"min":1000, "max":4999, "lable": "1000-4999人", "color":"#f9a90b"},
{"min":5000, "max":9999, "lable": "5000-9999人", "color":"#f9720b"},
{"min":10000, "max":49999, "lable": "10000-49999人", "color":"#f90b6d"},
{"min":50000, "lable": "50000+", "color":"#f90b0b"},
]
)
)
# 绘图
map.render("全国疫情地图.html")
运行结果如下:
八、绘制其他省份疫情数据地图
绘制省份地图,只需将省份的各市的数据,并将map.add()里的参数改为你想使用的省份即可,如绘制广东的疫情数据地图。
以下为示例代码:
"""
演示绘制广东疫情地图
"""
import json
from pyecharts.charts import Map
from pyecharts.options import TitleOpts, VisualMapOpts
# 读取数据文件
f = open("D:\pydaima\8day速成python\shuju\疫情.txt", "r", encoding="UTF-8")
data = f.read()
# 关闭文件
f.close()
# 读取广东所有数据
# json转换为python字典
data_dict = json.loads(data)
cities_hn_data = data_dict['areaTree'][0]['children'][7]['children']
# 准备数据为元组并嵌入list
data_list = []
for citi_data in cities_hn_data:
citi_name = citi_data['name'] + "市"
citi_confirm = citi_data['total']['confirm']
data_list.append((citi_name,citi_confirm))
# 创建地图对象
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": 49, "lable": "1-49人", "color": "#d1db85"},
{"min": 50, "max": 99, "lable": "50-99人", "color": "#f9d80b"},
{"min": 100, "max": 149, "lable": "100-149人", "color": "#f9a90b"},
{"min": 150, "max": 199, "lable": "150-199人", "color": "#f9720b"},
{"min": 200, "max": 249, "lable": "200-249人", "color": "#f90b6d"},
{"min": 250, "lable": "250+", "color": "#f90b0b"},
]
)
)
# 绘图
map.render("广东疫情分布情况.html")
运行结果:
此外,Pyecharts 具有丰富的图表类型,包括柱状图、箱形图、散点图、漏斗图、仪表盘、地理坐标系图表等,满足不同的数据展示需求。同时,它还支持生成3D图表,增加了可视化的立体感和互动性。
总的来说,Pyecharts 是一个强大的数据可视化工具,适用于需要进行数据分析和展示的Python开发者和数据分析师。
作者:星星法术嗲人