用Pyecharts绘制交互式中国地图:从数据到可视化全流程解析

简介: Pyecharts是基于ECharts的Python地图可视化利器:支持零代码交互(悬停、缩放)、多级行政区划(省/市/县)、高度定制化(20+样式参数)。本文详解安装配置、数据规范、三步绘图、分段配色、悬停高亮及3D扩展,助你快速生成专业级热力地图。(239字)

​免费编程软件「python+pycharm」
链接:https://pan.quark.cn/s/48a86be2fdc0

一、为什么选择Pyecharts绘制地图?
当需要展示各省份经济指标、人口分布或疫情数据时,表格和柱状图往往难以直观呈现地理空间关系。Pyecharts作为基于ECharts的Python可视化库,提供三大核心优势:
代理IP在实时交通数据采集的作用 (5).png

零代码交互:生成的HTML地图支持鼠标悬停查看数值、缩放平移等操作
多级地图支持:从全国到县级行政区划均可渲染
高度定制化:颜色渐变、边界样式、标签显示等20+项参数可调
以2025年某电商平台销售数据为例,通过热力地图可快速发现:广东省销售额占比达28%,而西北五省总和不足10%。这种空间分布特征在传统图表中难以直观呈现。

二、环境准备:安装与配置
2.1 基础安装
pip install pyecharts
2.2 地图数据包安装(关键步骤)
Pyecharts采用模块化地图设计,需单独安装对应数据包:

中国省级地图(必须安装)

pip install echarts-china-provinces-pypkg

可选扩展包

pip install echarts-china-cities-pypkg # 市级地图
pip install echarts-china-counties-pypkg # 县级地图

三、数据准备:从原始数据到可视化格式
3.1 数据结构要求
Pyecharts地图需要特定格式的二维列表:

[("北京", 100), ("上海", 200), ("广东", 300), ...]

3.2 实际案例处理
假设有如下CSV数据(部分展示):

省份,销售额(亿元)
北京,125
上海,210
广东,380
江苏,295
...

转换代码:

import pandas as pd

读取CSV文件

df = pd.read_csv('sales_data.csv')

转换为元组列表

data = list(zip(df['省份'], df['销售额(亿元)']))

3.3 数据验证技巧

检查省份名称是否规范(避免"广东"与"广东省"混用)

valid_provinces = {"北京", "上海", "广东", "江苏", ...} # 完整列表见附录
for item in data:
if item[0] not in valid_provinces:
print(f"发现无效省份名: {item[0]}")

四、基础地图绘制:三步完成可视化
4.1 最小可行代码
from pyecharts.charts import Map
from pyecharts import options as opts

示例数据

data = [("北京", 100), ("上海", 200), ("广东", 300)]

创建地图

map_chart = (
Map()
.add("销售额", data, "china")
.set_global_opts(
title_opts=opts.TitleOpts(title="2025年各省份销售额"),
visualmapopts=opts.VisualMapOpts(max=300)
)
)

生成HTML文件

map_chart.render("china_map.html")

4.2 代码解析
Map():创建地图对象
.add():添加数据系列
参数1:系列名称(图例显示)
参数2:数据列表
参数3:地图类型("china"表示中国地图)
.set_global_opts():全局配置
标题、视觉映射等设置
.render():输出HTML文件
4.3 效果增强技巧
调整地图中心点与缩放
.add(..., center=[105, 36], zoom=1.2) # 中心点设为地理中心,适当放大

优化标签显示
.set_series_opts(
label_opts=opts.LabelOpts(
is_show=True, # 显示标签
color="#333", # 标签颜色
font_size=10 # 字体大小
)
)

五、进阶美化:打造专业级地图
5.1 分段颜色映射
.set_global_opts(
visualmap_opts=opts.VisualMapOpts(
is_piecewise=True, # 启用分段
pieces=[
{"min": 0, "max": 100, "label": "0-100亿", "color": "#FFE4E1"},
{"min": 101, "max": 200, "label": "101-200亿", "color": "#FF7F50"},
{"min": 201, "max": 300, "label": "201-300亿", "color": "#FF4500"},
{"min": 301, "label": "300亿以上", "color": "#8B0000"}
]
)
)

5.2 自定义地图样式
.set_series_opts(
itemstyle_opts=opts.ItemStyleOpts(
area_color="#142957", # 省份底色
border_color="#00f2fe", # 边界颜色
border_width=0.5 # 边界宽度
)
)

5.3 添加悬停高亮效果
.set_series_opts(
emphasis_opts=opts.ItemStyleOpts(
area_color="#00f2fe", # 悬停时颜色
border_color="#ffffff", # 悬停时边界
border_width=2 # 悬停时边界加粗
)
)

六、完整案例:2025年各省份GDP热力图
6.1 数据准备
gdp_data = [
("广东", 124369.67), ("江苏", 116364.2),
("山东", 83095.90), ("浙江", 73516.3),
("河南", 58887.41), ("四川", 53850.79),
("湖北", 50012.94), ("福建", 48829.61),
("湖南", 46027.47), ("上海", 43214.85)
]

6.2 完整代码
from pyecharts.charts import Map
from pyecharts import options as opts

创建地图

map_chart = (
Map()
.add(
series_name="GDP(亿元)",
data_pair=gdp_data,
maptype="china",
center=[105, 36],
zoom=1.2
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="2025年中国各省份GDP分布",
subtitle="数据来源:国家统计局",
pos_left="center"
),
visualmap_opts=opts.VisualMapOpts(
ispiecewise=True,
max
=125000,
pieces=[
{"min": 0, "max": 50000, "label": "<5万亿", "color": "#FFE4E1"}, {"min": 50001, "max": 80000, "label": "5-8万亿", "color": "#FFDAB9"}, {"min": 80001, "max": 100000, "label": "8-10万亿", "color": "#FFA07A"}, {"min": 100001, "label": ">10万亿", "color": "#FF6347"}
],
pos_left="10%",
pos_top="20%"
),
tooltip_opts=opts.TooltipOpts(
trigger="item",
formatter="{b}
{c}亿元"
)
)
.set_series_opts(
label_opts=opts.LabelOpts(
is_show=True,
color="#333",
font_size=10
),
itemstyle_opts=opts.ItemStyleOpts(
area_color="#E6E6FA",
border_color="#4682B4"
),
emphasis_opts=opts.ItemStyleOpts(
area_color="#9370DB",
border_color="#FFFFFF",
border_width=1.5
)
)
)

生成HTML

map_chart.render("2025_china_gdp_map.html")

6.3 效果说明
分段显示:GDP分为4个区间,不同颜色对应不同量级
交互功能:
鼠标悬停显示省份名称和具体数值
地图可缩放平移
视觉优化:
标题居中显示
图例位于左侧
默认缩放至合适比例
七、常见问题解决方案
7.1 地图显示空白
原因:未安装对应地图数据包
解决:根据报错提示安装缺失的包,如:

pip install echarts-china-provinces-pypkg

7.2 省份名称不匹配
表现:部分省份显示为灰色(无数据)
检查:

确认省份名称规范(如"内蒙古"而非"内蒙古自治区")
使用完整省份列表核对:
valid_provinces = {
"北京", "天津", "河北", "山西", "内蒙古", "辽宁",
"吉林", "黑龙江", "上海", "江苏", "浙江", "安徽",
"福建", "江西", "山东", "河南", "湖北", "湖南",
"广东", "广西", "海南", "重庆", "四川", "贵州",
"云南", "西藏", "陕西", "甘肃", "青海", "宁夏",
"新疆"
}

7.3 数值范围显示异常
现象:颜色映射不准确
解决:在VisualMapOpts中明确设置max_值:

.set_global_opts(
visualmapopts=opts.VisualMapOpts(
max
=50000, # 手动设置最大值
is_piecewise=True
)
)

八、扩展应用场景
8.1 结合Flask/Django嵌入网页

Flask示例

from flask import Flask, render_template

app = Flask(name)

@app.route('/')
def show_map():

# 生成地图(实际项目中可缓存结果)
map_chart.render("templates/map.html")
return render_template("map.html")

if name == 'main':
app.run()

8.2 动态数据更新
通过JavaScript定时刷新数据(需配合ECharts的setOption方法):

// 伪代码示例
setInterval(function() {
fetch('/api/get_new_data')
.then(res => res.json())
.then(data => {
myChart.setOption({
series: [{
data: data
}]
});
});
}, 5000);

8.3 3D地图效果
需安装额外扩展包:

pip install pyecharts-gallery

3D地图示例:

from pyecharts.charts import Map3D
from pyecharts import options as opts

map3d = (
Map3D()
.add_schema(
maptype="china",
itemstyle_opts=opts.ItemStyleOpts(
color="#1E90FF",
opacity=1,
border_width=0.8
)
)
.add(
series_name="",
datapair=data,
type
="bar3D",
shading="lambert",
label_opts=opts.LabelOpts(
is_show=False
)
)
.set_global_opts(
visualmapopts=opts.VisualMapOpts(max=300)
)
)
map3d.render("3d_map.html")

九、总结与建议
快速上手:从基础代码开始,逐步添加配置项
数据验证:确保省份名称规范,数值范围合理
交互设计:合理设置缩放、标签显示等交互参数
性能优化:大数据量时考虑使用is_map_symbol_show=False隐藏标记点
持续学习:关注Pyecharts官方文档更新,掌握新特性
通过本文介绍的流程,即使没有前端开发经验,也能快速创建出专业级的交互式地图。实际项目中可根据需求组合使用基础地图、分段颜色、3D效果等特性,打造更具说服力的数据可视化作品。

目录
相关文章
|
7天前
|
人工智能 自然语言处理 Shell
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
本教程指导用户在开源AI助手Clawdbot中集成阿里云百炼API,涵盖安装Clawdbot、获取百炼API Key、配置环境变量与模型参数、验证调用等完整流程,支持Qwen3-max thinking (Qwen3-Max-2026-01-23)/Qwen - Plus等主流模型,助力本地化智能自动化。
🦞 如何在 OpenClaw (Clawdbot/Moltbot) 配置阿里云百炼 API
|
5天前
|
人工智能 JavaScript 应用服务中间件
零门槛部署本地AI助手:Windows系统Moltbot(Clawdbot)保姆级教程
Moltbot(原Clawdbot)是一款功能全面的智能体AI助手,不仅能通过聊天互动响应需求,还具备“动手”和“跑腿”能力——“手”可读写本地文件、执行代码、操控命令行,“脚”能联网搜索、访问网页并分析内容,“大脑”则可接入Qwen、OpenAI等云端API,或利用本地GPU运行模型。本教程专为Windows系统用户打造,从环境搭建到问题排查,详细拆解全流程,即使无技术基础也能顺利部署本地AI助理。
6178 12
|
3天前
|
人工智能 机器人 Linux
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
OpenClaw(原Clawdbot)是一款开源本地AI智能体,支持飞书等多平台对接。本教程手把手教你Linux下部署,实现数据私有、系统控制、网页浏览与代码编写,全程保姆级操作,240字内搞定专属AI助手搭建!
3359 8
保姆级 OpenClaw (原 Clawdbot)飞书对接教程 手把手教你搭建 AI 助手
|
5天前
|
人工智能 JavaScript API
零门槛部署本地 AI 助手:Clawdbot/Meltbot 部署深度保姆级教程
Clawdbot(Moltbot)是一款智能体AI助手,具备“手”(读写文件、执行代码)、“脚”(联网搜索、分析网页)和“脑”(接入Qwen/OpenAI等API或本地GPU模型)。本指南详解Windows下从Node.js环境搭建、一键安装到Token配置的全流程,助你快速部署本地AI助理。(239字)
3895 21
|
11天前
|
人工智能 API 开发者
Claude Code 国内保姆级使用指南:实测 GLM-4.7 与 Claude Opus 4.5 全方案解
Claude Code是Anthropic推出的编程AI代理工具。2026年国内开发者可通过配置`ANTHROPIC_BASE_URL`实现本地化接入:①极速平替——用Qwen Code v0.5.0或GLM-4.7,毫秒响应,适合日常编码;②满血原版——经灵芽API中转调用Claude Opus 4.5,胜任复杂架构与深度推理。
7374 12
|
3天前
|
存储 人工智能 机器人
OpenClaw是什么?阿里云OpenClaw(原Clawdbot/Moltbot)一键部署官方教程参考
OpenClaw是什么?OpenClaw(原Clawdbot/Moltbot)是一款实用的个人AI助理,能够24小时响应指令并执行任务,如处理文件、查询信息、自动化协同等。阿里云推出的OpenClaw一键部署方案,简化了复杂配置流程,用户无需专业技术储备,即可快速在轻量应用服务器上启用该服务,打造专属AI助理。本文将详细拆解部署全流程、进阶功能配置及常见问题解决方案,确保不改变原意且无营销表述。
3631 3
|
3天前
|
存储 安全 数据库
2026年使用Docker部署OpenClaw(原Clawdbot/Moltbot)完整步骤教程
OpenClaw(原Clawdbot/Moltbot)是一款开源的本地运行个人AI助手,支持WhatsApp、Telegram、Slack等十余种通信渠道,兼容macOS、iOS、Android系统,还可渲染实时Canvas界面。本文提供基于Docker Compose的生产级部署指南,涵盖环境准备、源码获取、配置、构建、启动及运维等关键环节,补充生产环境必需的安全配置、数据持久化、备份与监控建议,与官方配置无冲突,适用于希望通过Docker快速部署的用户。需说明的是,OpenClaw暂无官方预构建Docker镜像,需通过源码+Dockerfile本地构建,这也是官方推荐的最稳定部署方式。
2628 0
|
4天前
|
人工智能 JavaScript 安全
Clawdbot 对接飞书详细教程 手把手搭建你的专属 AI 助手
本教程手把手教你将 Moltbot(原 Clawdbot)部署在 Linux 服务器,并对接飞书打造专属 AI 助手:涵盖环境准备、Node.js/NVM 安装、Moltbot 快速安装(支持 Qwen 模型)、Web 管理面板配置及飞书应用创建、权限设置与事件回调对接,全程图文指引,安全可靠。
2521 3
Clawdbot 对接飞书详细教程 手把手搭建你的专属 AI 助手
|
6天前
|
人工智能 安全 Shell
在 Moltbot (Clawdbot) 里配置调用阿里云百炼 API 完整教程
Moltbot(原Clawdbot)是一款开源AI个人助手,支持通过自然语言控制设备、处理自动化任务,兼容Qwen、Claude、GPT等主流大语言模型。若需在Moltbot中调用阿里云百炼提供的模型能力(如通义千问3系列),需完成API配置、环境变量设置、配置文件编辑等步骤。本文将严格遵循原教程逻辑,用通俗易懂的语言拆解完整流程,涵盖前置条件、安装部署、API获取、配置验证等核心环节,确保不改变原意且无营销表述。
2262 6
|
6天前
|
机器人 API 数据安全/隐私保护
只需3步,无影云电脑一键部署Moltbot(Clawdbot)
本指南详解Moltbot(Clawdbot)部署全流程:一、购买无影云电脑Moltbot专属套餐(含2000核时);二、下载客户端并配置百炼API Key、钉钉APP KEY及QQ通道;三、验证钉钉/群聊交互。支持多端,7×24运行可关闭休眠。
3594 7