上一篇
使用Pyecharts绘制疫情分布图的Python教程 | Pyecharts数据可视化
- Python
- 2025-07-19
- 224
使用Pyecharts绘制疫情分布图的Python教程
Pyecharts是一个基于ECharts的Python可视化库,可以轻松创建交互式图表。本教程将指导你使用Pyecharts绘制疫情分布地图。
1. 安装Pyecharts
首先确保已安装Pyecharts库。如果没有安装,可以使用pip命令安装:
pip install pyecharts
如果需要绘制地图,还需要安装相应的地图文件包:
pip install echarts-countries-pypkg # 全球国家地图
pip install echarts-china-provinces-pypkg # 中国省级地图
pip install echarts-china-cities-pypkg # 中国市级地图
2. 准备疫情数据
我们需要准备要可视化的疫情数据,格式为省份/地区名称和对应的数值:
# 示例数据:中国各省份疫情数据
data = [
("广东", 1250),
("北京", 980),
("上海", 865),
("江苏", 745),
("浙江", 620),
("湖北", 580),
("四川", 550),
("福建", 480),
("河南", 420),
("山东", 380),
("河北", 360),
("湖南", 320),
("安徽", 300),
("辽宁", 280),
("陕西", 250),
("重庆", 230),
("江西", 200),
("广西", 180),
("云南", 160),
("黑龙江", 150)
]
3. 创建疫情分布图
使用Pyecharts的Map组件创建疫情分布图:
from pyecharts import options as opts
from pyecharts.charts import Map
# 创建地图实例
c = (
Map(init_opts=opts.InitOpts(width="1000px", height="600px"))
.add(
series_name="确诊病例",
data_pair=data,
maptype="china",
is_map_symbol_show=False,
)
.set_global_opts(
title_opts=opts.TitleOpts(title="全国疫情分布图",
subtitle="数据更新时间:2023-10-15"),
visualmap_opts=opts.VisualMapOpts(
max_=1500,
is_piecewise=True,
pieces=[
{"min": 1000, "label": ">1000例", "color": "#8B0000"},
{"min": 500, "max": 999, "label": "500-999例", "color": "#CD5C5C"},
{"min": 300, "max": 499, "label": "300-499例", "color": "#F08080"},
{"min": 100, "max": 299, "label": "100-299例", "color": "#FFA07A"},
{"min": 1, "max": 99, "label": "1-99例", "color": "#FFDAB9"},
{"min": 0, "max": 0, "label": "无病例", "color": "#F5F5F5"}
]
),
tooltip_opts=opts.TooltipOpts(
trigger="item", formatter="{b}
{c}例确诊病例"
),
)
)
# 渲染为HTML文件
c.render("covid19_map.html")
4. 代码解析
4.1 地图类型
通过设置maptype="china"
指定显示中国地图。Pyecharts支持多种地图类型:
'china'
- 中国地图'world'
- 世界地图'广东'
- 省级地图(替换为其他省份名称)
4.2 视觉映射配置
使用VisualMapOpts
配置颜色映射:
max_
- 设置数据最大值is_piecewise
- 使用分段式视觉映射pieces
- 自定义分段区间和颜色
4.3 提示框配置
TooltipOpts
配置鼠标悬停时的提示框:
trigger="item"
- 数据项图形触发formatter
- 自定义提示内容格式
5. 进阶功能
动态时间轴
展示疫情随时间的变化:
from pyecharts.charts import Timeline
timeline = Timeline()
for time_point in time_data:
map_chart = create_map_for_time(time_point)
timeline.add(map_chart, time_point)
timeline.render()
添加标记点
在地图上标记重要地点:
.add(
series_name="重要城市",
type_="scatter",
data_pair=city_data,
symbol_size=10,
label_opts=opts.LabelOpts(is_show=False)
)
多层级地图
实现省-市-区的多级下钻:
from pyecharts.charts import Map
from pyecharts import options as opts
c = (
Map()
.add(series_name="",
data_pair=data,
maptype="china",
zoom=1)
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(is_show=True)
)
)
6. 效果展示
下面是使用示例代码生成的疫情分布图效果:
全国疫情分布图
实际渲染的地图将在此处显示交互式疫情分布
7. 常见问题解决
问题1:地图显示不完整或空白
解决方案:
- 确保安装了相应的地图包:
echarts-china-provinces-pypkg
等 - 检查省份名称是否与Pyecharts内置名称一致
- 尝试添加
is_roam=True
参数启用区域缩放
问题2:数据值显示不正确
解决方案:
- 检查数据格式是否为
[(区域名称, 数值), ...]
- 确保数值为整数或浮点数,而不是字符串
- 调整
visualmap_opts
中的max_
和min_
值
问题3:地图交互功能无效
解决方案:
- 确保在浏览器中打开生成的HTML文件
- 检查是否启用了JavaScript
- 使用最新版本的Pyecharts库
总结
Pyecharts提供了强大的地图可视化功能,通过本教程你学会了:
- 安装Pyecharts及地图扩展包
- 准备和格式化疫情数据
- 创建基础疫情分布地图
- 配置视觉映射和提示框
- 实现进阶功能如时间轴和多级下钻
- 解决常见的地图显示问题
Pyecharts生成的疫情分布图具有丰富的交互功能,包括缩放、平移、区域选择和数据筛选,非常适合用于疫情数据分析和展示。
本文由SituGuiYue于2025-07-19发表在吾爱品聚,如有疑问,请联系我们。
本文链接:https://521pj.cn/20255988.html
发表评论