news 2026/7/15 9:19:32

Pyecharts地图实战篇 - 从数据准备到交互式热力图生成的完整指南

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Pyecharts地图实战篇 - 从数据准备到交互式热力图生成的完整指南

1. Pyecharts地图可视化入门指南

第一次接触Pyecharts地图可视化时,我被它的简单高效震惊了。作为一个常年和Excel打交道的分析师,以前要做一个省级销售热力图,至少得折腾半天。现在用Pyecharts,十几行代码就能生成交互式地图,还能直接嵌入网页。

Pyecharts是百度ECharts的Python接口,特别适合需要快速实现地理数据可视化的场景。比如我们市场部最近要分析全国门店销售数据,传统表格根本看不出区域差异,用Pyecharts热力图,哪些省份是增长热点一目了然。

先看个最简单的例子:用随机数据生成中国省级热力图。即使你完全没接触过Pyecharts,跟着下面代码操作也能立即看到效果:

from pyecharts.charts import Map from pyecharts import options as opts import random # 准备省份数据 provinces = ["北京", "天津", "河北", "山西", "内蒙古", "辽宁", "吉林", "黑龙江", "上海", "江苏", "浙江", "安徽", "福建", "江西", "山东", "河南"] values = [random.randint(100, 500) for _ in provinces] # 生成地图 map_chart = ( Map() .add("销售额", list(zip(provinces, values)), "china") .set_global_opts( title_opts=opts.TitleOpts(title="省级销售热力图"), visualmap_opts=opts.VisualMapOpts(max_=500) ) ) map_chart.render("sales_map.html")

运行后会生成一个HTML文件,用浏览器打开就能看到可交互的地图。鼠标悬停会显示具体数值,滚轮可以缩放,比静态图片方便多了。

2. 环境配置与地图包安装

刚开始用Pyecharts时,最容易踩的坑就是地图显示空白。这是因为从v0.3.2版本开始,Pyecharts为了减小体积,地图文件需要单独安装。我第一次用时折腾了半天才发现问题所在。

2.1 基础安装

首先确保安装了最新版Pyecharts:

pip install pyecharts

2.2 地图包安装

根据需求选择安装对应的地图包:

# 世界地图(含中国) pip install echarts-countries-pypkg # 中国省级地图(必装) pip install echarts-china-provinces-pypkg # 中国市级地图 pip install echarts-china-cities-pypkg # 中国县级地图 pip install echarts-china-counties-pypkg

我曾经遇到个典型问题:代码运行不报错,但地图显示空白。后来发现是没装省级地图包。建议至少安装省级地图包,这是最常用的。

3. 数据准备与格式处理

实际项目中,数据往往来自Excel或数据库,需要先做格式转换。Pyecharts地图数据要求是特定格式的二维列表,比如:

[("北京", 175), ("上海", 210), ("广东", 385)]

3.1 从CSV读取数据

假设有sales_data.csv文件:

省份,销售额 北京,175 上海,210 广东,385 ...

转换代码:

import pandas as pd df = pd.read_csv('sales_data.csv') data = list(zip(df['省份'], df['销售额']))

3.2 数据验证技巧

常见问题是省份名称不规范,比如"广东"写成"广东省"。建议先用标准省份列表校验:

valid_provinces = {"北京", "天津", "河北", "山西", "内蒙古", "辽宁", "吉林", "黑龙江", "上海", "江苏", "浙江", "安徽", "福建", "江西", "山东", "河南", "湖北", "湖南", "广东", "广西", "海南", "重庆", "四川", "贵州", "云南", "西藏", "陕西", "甘肃", "青海", "宁夏", "新疆"} for item in data: if item[0] not in valid_provinces: print(f"无效省份名称: {item[0]}")

4. 基础地图生成

4.1 三步生成地图

Pyecharts地图生成基本流程:

  1. 创建Map对象
  2. 添加数据系列
  3. 设置全局配置
from pyecharts.charts import Map from pyecharts import options as opts # 示例数据 data = [("北京", 175), ("上海", 210), ("广东", 385)] map_chart = ( Map() .add("销售额", data, "china") # 系列名、数据、地图类型 .set_global_opts( title_opts=opts.TitleOpts(title="销售热力图"), visualmap_opts=opts.VisualMapOpts(max_=500) ) ) map_chart.render("sales_map.html")

4.2 地图类型选择

根据范围选择maptype参数:

  • "world":世界地图
  • "china":中国地图
  • "广东":省级地图(替换为其他省份名称)
  • "广州":市级地图

5. 进阶美化技巧

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="#E6E6FA", # 区域底色 border_color="#4682B4", # 边界颜色 border_width=0.5 # 边界粗细 ) )

5.3 悬停高亮效果

.set_series_opts( emphasis_opts=opts.ItemStyleOpts( area_color="#9370DB", # 悬停颜色 border_color="#FFFFFF", border_width=1.5 ) )

6. 完整实战案例

6.1 2023年GDP热力图

gdp_data = [ ("广东", 124369), ("江苏", 116364), ("山东", 83096), ("浙江", 73516), ("河南", 58887), ("四川", 53851), ("湖北", 50013), ("福建", 48830), ("湖南", 46027), ("上海", 43215) ] map_chart = ( Map() .add( "GDP(亿元)", gdp_data, "china", zoom=1.2 # 适当放大 ) .set_global_opts( title_opts=opts.TitleOpts( title="2023年中国各省GDP分布", subtitle="数据来源:国家统计局" ), visualmap_opts=opts.VisualMapOpts( is_piecewise=True, 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"} ] ) ) .set_series_opts( label_opts=opts.LabelOpts(is_show=True) ) ) map_chart.render("gdp_map.html")

6.2 常见问题解决

问题1:地图显示空白

  • 原因:未安装对应地图包
  • 解决:根据报错提示安装,如pip install echarts-china-provinces-pypkg

问题2:部分省份无颜色

  • 检查省份名称是否规范(如"内蒙古"不是"内蒙古自治区")
  • 确认数据中包含该省份

问题3:颜色映射不准确

  • 在VisualMapOpts中手动设置max_值

7. 高级应用场景

7.1 嵌入Flask应用

from flask import Flask, render_template from pyecharts.charts import Map app = Flask(__name__) @app.route("/") def show_map(): map_chart = Map().add(...) # 地图配置 return render_template("map.html", map_html=map_chart.render_embed())

7.2 动态更新数据

结合JavaScript定时刷新:

setInterval(function() { fetch('/api/latest_data') .then(res => res.json()) .then(data => { chart.setOption({series: [{data: data}]}); }); }, 5000);

7.3 3D地图效果

需安装扩展包:

pip install pyecharts-gallery

示例代码:

from pyecharts.charts import Map3D map3d = ( Map3D() .add_schema(maptype="china") .add("GDP", data, type_="bar3D") ) map3d.render("3d_map.html")
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/7/15 9:19:26

CANN ops-nn Tanh梯度算子

aclnnTanhGrad 【免费下载链接】ops-nn 本项目是CANN提供的神经网络类计算算子库&#xff0c;实现网络在NPU上加速计算。 项目地址: https://gitcode.com/cann/ops-nn 产品支持情况 产品是否支持Atlas A2 训练系列产品/Atlas 800I A2 推理产品√ 功能说明 算子功能&a…

作者头像 李华
网站建设 2026/7/15 9:19:20

GPT-5.6大模型集成实战:从API调用到应用开发完整指南

最近在AI大模型领域&#xff0c;OpenAI正式发布了GPT-5.6系列&#xff0c;与Anthropic的Fable-5形成了激烈的竞争态势。作为开发者&#xff0c;我们不仅要关注模型本身的性能对比&#xff0c;更需要掌握如何在实际项目中应用这些先进的AI能力。本文将深入解析GPT-5.6的技术特性…

作者头像 李华
网站建设 2026/7/15 9:18:54

GDPU C语言 番外篇:从运算符到排序,新手避坑实战指南

1. 运算符优先级&#xff1a;那些年我们踩过的坑 刚学C语言那会儿&#xff0c;我最头疼的就是运算符优先级问题。明明代码逻辑没问题&#xff0c;运行结果却总是莫名其妙。后来才发现&#xff0c;问题出在运算符的"隐形规则"上。比如下面这段代码&#xff1a; int …

作者头像 李华
网站建设 2026/7/15 9:17:39

Qt4源码深度解析:从元对象系统到GUI框架设计思想

1. 项目概述&#xff1a;为什么今天还要啃Qt4的源码&#xff1f;看到这个标题&#xff0c;你可能会想&#xff1a;现在都Qt6了&#xff0c;谁还看Qt4&#xff1f;这不是在学“古董”吗&#xff1f;作为一个从Qt 4.3版本就开始折腾的老码农&#xff0c;我得说&#xff0c;这个想…

作者头像 李华
网站建设 2026/7/15 9:15:20

FES2014潮汐模型:从数据下载到中国沿海精度验证的实践指南

1. FES2014潮汐模型入门指南第一次接触潮汐模型的朋友可能会被各种专业术语吓到&#xff0c;其实理解起来并不复杂。FES2014就像是一个全球潮汐的"天气预报系统"&#xff0c;由法国国家空间研究中心(CNES)开发&#xff0c;能够预测地球上任何位置的潮汐变化。这个模型…

作者头像 李华