利用pyecharts自动化绘制地图(Map)与热力图(HeatMap)保姆级教程
摘要本文介绍了如何利用Python中的可视化神器pyecharts实现数据的地理空间与热力分布可视化。文章将带你从零开始详细讲解如何准备数据并绘制中国省级地图Map与用户活跃度热力图HeatMap。通过对VisualMapOpts等配置项的深度解析帮助数据分析人员和开发者快速掌握高级图表的绘制技巧轻松实现从枯燥数据到炫酷可视化网页的华丽转身。本节的学习目的掌握pyecharts库的基础使用方法。学会处理和格式化地理空间数据并绘制高颜值的地图Map。掌握二维矩阵数据的映射方式绘制直观生动的热力图HeatMap。熟悉全局配置项如视觉映射配置项、标题配置项的灵活运用。️ 1. 环境准备在开始编写代码之前我们需要确保安装了必要的绘图模块。打开你的终端输入以下指令利用 pip 安装pyechartspipinstallpyechartsTips如果你在安装时觉得速度较慢可以加上国内镜像源进行加速例如pip install pyecharts -i https://pypi.tuna.tsinghua.edu.cn/simple️ 2. 地图 (Map) 绘制指南全国各省销售额分布图地图是展示地理空间数据最直观的工具之一。例如我们要展示一家企业在全国各省份的销售额情况使用Map组件再合适不过了。2.1 准备数据与核心代码对于地图来说pyecharts需要的数据格式通常是一个包含(地区名称, 数值)的列表。frompyechartsimportoptionsasoptsfrompyecharts.chartsimportMapdefdraw_map():# 1. 准备格式化数据# 格式要求[(省份1, 数值1), (省份2, 数值2), ...]data[(广东省,1200),(北京市,980),(上海市,1100),(四川省,600),(湖南省,550),(浙江省,900),(江苏省,850),(湖北省,400),(山东省,700)]# 2. 初始化地图对象并链式调用map_chart(Map(init_optsopts.InitOpts(width1000px,height600px)).add(series_name年度销售额 (万元),# 系列名称data_pairdata,# 传入数据maptypechina,# 地图类型这里选择中国地图is_roamTrue,# 开启鼠标缩放和平移漫游).set_global_opts(title_optsopts.TitleOpts(title全国各省年度销售额分布图,pos_leftcenter# 标题居中),# 视觉映射配置项用于将数值映射为颜色visualmap_optsopts.VisualMapOpts(max_1500,# 最大值is_piecewiseTrue,# 是否分段显示非常重要分段比连续渐变更好看pieces[{min:1000,label: 1000万元,color:#8B0000},{min:800,max:999,label:800-999万元,color:#FF4500},{min:500,max:799,label:500-799万元,color:#FFA500},{min:0,max:499,label: 500万元,color:#FFDAB9}])))# 3. 渲染生成 HTML 文件map_chart.render(china_sales_map.html)if__name____main__:draw_map()2.2 核心知识点解析maptypechina指定绘制中国省级地图。如果你想绘制某个具体的省份如广东省只需将其改为广东即可。is_piecewiseTrue开启分段视觉映射。在实际业务中分段展示能够让观察者快速归类例如高优、中优、低优。执行代码后会在当前目录下生成china_sales_map.html文件用浏览器打开即可看到极具互动性的图表️ 3. 热力图 (HeatMap) 绘制指南一周用户活跃度热力图常用于展示交叉维度的数据密集度或权重分布情况。例如我们要分析一周内周一至周日、每天的24个小时中用户在哪个时间段最为活跃。3.1 准备数据与核心代码热力图需要三个维度的信息X轴标签、Y轴标签以及对应的数值矩阵格式为[x_index, y_index, value]。importrandomfrompyechartsimportoptionsasoptsfrompyecharts.chartsimportHeatMapdefdraw_heatmap():# 1. 准备 X 轴和 Y 轴标签hours[f{i}时foriinrange(24)]days[周一,周二,周三,周四,周五,周六,周日]# 2. 模拟生成活跃度数据矩阵# 数据格式[[x索引, y索引, 数值], [x索引, y索引, 数值], ...]data[]foriinrange(24):# X轴24小时forjinrange(7):# Y轴7天# 模拟晚上 20点-23点 活跃度较高周末下午活跃度较高if20i23or(j5and14i17):valrandom.randint(50,100)else:valrandom.randint(0,40)data.append([i,j,val])# 3. 初始化热力图对象并链式调用heatmap_chart(HeatMap(init_optsopts.InitOpts(width1000px,height500px)).add_xaxis(hours).add_yaxis(series_name用户活跃度,yaxis_datadays,valuedata,label_optsopts.LabelOpts(is_showTrue,positioninside)# 在色块中显示数值).set_global_opts(title_optsopts.TitleOpts(title一周用户活跃度热力图,pos_leftcenter),# 视觉映射配置此处使用连续渐变映射visualmap_optsopts.VisualMapOpts(max_100,min_0,is_piecewiseFalse,# 连续型不分段pos_leftright,pos_topcenter,# 设置热力图专属的渐变色系从浅蓝到深红range_color[#E0FFFF,#87CEFA,#FF7F50,#DC143C]),# 调整图表边距防止标签被遮挡# grid_opts 已经在 pyecharts 的某些新版本调整如需要微调可配合 Grid 模块))# 4. 渲染生成 HTML 文件heatmap_chart.render(user_activity_heatmap.html)print(热力图已成功生成user_activity_heatmap.html)if__name____main__:draw_heatmap()3.2 核心知识点解析数据矩阵[i, j, val]i是 X 轴hours的索引j是 Y 轴days的索引val则是对应方格渲染的颜色深浅依据即活跃度数值。连续渐变色 (range_color)通过给visualmap_opts传递一个由浅入深的色值列表图表将自动插值使热力分布看起来平滑且极具高级感。内置标签 (label_opts)设置is_showTrue, positioninside可以将具体的活跃数值直接显示在色块中央方便数据复核。 4. 总结在这篇保姆级教程中我们一起学习了如何利用pyecharts.charts.Map呈现地理空间信息各省销售数据并借助分段视觉映射实现数据的直观分级。如何利用pyecharts.charts.HeatMap呈现交叉维度数据一周24小时用户活跃度并搭配渐变色系绘制出高大上的热力分布图。pyecharts的魅力不仅在于其能够生成高度可交互的网页可视化图表更在于它完美契合了 Python 的数据分析生态环境如与pandas,openpyxl的无缝衔接。掌握了这些无论是撰写数据分析报告还是开发数据大屏你都能得心应手小贴士如果想要将本文的内容与真实的业务结合不妨尝试使用之前讲过的openpyxl批量读取 Excel 里的地市/时间数据再动态灌入这些图表中实现彻头彻尾的自动化分析与出图。觉得有帮助的话别忘了点赞、收藏、关注哦你的支持是我持续更新干货的最大动力

相关新闻

MySQL执行计划解析与性能优化实战

MySQL执行计划解析与性能优化实战

1. MySQL执行计划解析:从入门到精通作为数据库性能优化的核心工具,EXPLAIN命令是每位MySQL开发者必须掌握的技能。记得我第一次接手一个慢查询优化项目时,面对2秒的查询响应时间手足无措,直到前辈提醒我:"先看执行…

2026/10/3 3:59:30 阅读更多 →
13、Rust程序设计语言——认识Cargo和Crates.io

13、Rust程序设计语言——认识Cargo和Crates.io

目录1. 采用发布配置自定义构建2. 将crate发布到Crates.io2.1 编写有用的文档注释2.1.1 常用章节2.1.2 文档注释作为测试2.1.3 注释包含项的结构2.2 导出实用的公有API2.3 创建crates.io账号2.4 向新crate添加元数据2.5 发布到crates.io2.6 发布现有crate的新版本2.7 使用cargo…

2026/10/13 16:42:28 阅读更多 →
AI Agent学习:Harness工程——模型之外的Agent核心竞争力(李博杰《深入理解 AI Agent》1.2观后总结)

AI Agent学习:Harness工程——模型之外的Agent核心竞争力(李博杰《深入理解 AI Agent》1.2观后总结)

一、Harness工程的核心本质 基础Agent依靠大模型ReAct循环、上下文和工具,可以跑通演示Demo,但存在天然缺陷,容易出现模型幻觉、工具选错、异常无法自愈等问题。Demo可以运行不代表产品可用,而Harness工程就是补齐这些缺陷、让Age…

2026/10/13 14:43:30 阅读更多 →

最新新闻

第6章:Spring AI 2.0 ChatClient 门面

第6章:Spring AI 2.0 ChatClient 门面

上章思考题答案 用户原话里的 {orderId} 若放进 SystemPromptTemplate 再渲染,StringTemplate 会把它当成变量。缺这个键时,ValidationMode.THROW 抛 IllegalStateException,正常咨询被拒绝。用户原话应走 UserMessage 或 ChatClient.user&a…

2026/10/14 0:03:43 阅读更多 →
【车载定位】基于扩展卡尔曼滤波 EKF,分别利用 TDOA、AOA 以及 TDOA+AOA 融合观测,搭配近恒速 NCV / 近恒位置 NCP运动模型对车辆轨迹估计附Matlab代码

【车载定位】基于扩展卡尔曼滤波 EKF,分别利用 TDOA、AOA 以及 TDOA+AOA 融合观测,搭配近恒速 NCV / 近恒位置 NCP运动模型对车辆轨迹估计附Matlab代码

✅作者简介:热爱科研的Matlab仿真开发者,擅长数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。🍎 往期回顾关注个人主页:Matlab科研工作室👇 关注我领取海量matlab电子书和数学建模资料 &…

2026/10/14 0:03:43 阅读更多 →
人工智能期末复习:用习题集构建考点地图,高效备考不挂科

人工智能期末复习:用习题集构建考点地图,高效备考不挂科

简介:这份资源汇集人工智能课程各章小结与经典习题解答,适合正在系统学习人工智能基础、准备期末考试的本科生或自学者使用。内容覆盖人工智能的概念与发展阶段、研究学派与研究领域、知识与知识表示(谓词逻辑、产生式规则、框架、语义网络&a…

2026/10/14 0:03:43 阅读更多 →
wandb-core 中的 Wire 依赖注入:从贡献指南到 go:generate 自动装配实战

wandb-core 中的 Wire 依赖注入:从贡献指南到 go:generate 自动装配实战

机器学习深度学习数据可视化可观测性 【免费下载链接】wandb The AI developer platform. Use Weights & Biases to train and fine-tune models, and manage models from experimentation to production. 项目地址: https://gitcode.com/gh_mirrors/wa/wandb 点…

2026/10/14 0:03:43 阅读更多 →
微博评论文本情感分析:从数据清洗到三模型对比的完整实践

微博评论文本情感分析:从数据清洗到三模型对比的完整实践

简介:面向毕业设计场景,资源围绕微博评论文本情感分析,完整覆盖支持向量机、朴素贝叶斯与AdaBoost三种机器学习算法的建模流程,适合计算机相关专业本科生用于课程设计或毕业设计参考。压缩包共70个文件,约6.05MB&#…

2026/10/14 0:03:43 阅读更多 →
小型超市仓库管理系统

小型超市仓库管理系统

小型超市仓库管理系统选题背景与意义 随着我国城镇化进程的不断推进以及居民消费水平的持续提升,小型超市作为连接城市社区与消费者的重要商业节点,在日常生活中的作用日益凸显。尤其是在一二线城市周边的居民区、城乡结合部及中小城镇,小型超…

2026/10/14 0:02:42 阅读更多 →

日新闻

AnyPS5通用适配层设计:兼容性与性能的工程取舍

AnyPS5通用适配层设计:兼容性与性能的工程取舍

1. 从"AnyPS5"这个名字说起:它到底想解决什么问题第一次看到"AnyPS5"这个标题,我脑子里冒出来的第一个念头是:这大概率是一个围绕"跨平台运行"或者"通用适配"做文章的项目。名字里的"Any"…

2026/10/14 0:00:41 阅读更多 →
Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

Flutter跨平台开发实战:二手交易应用与HarmonyOS适配

1. 项目概述:Flutter跨平台二手交易应用开发作为一名长期从事移动应用开发的工程师,我最近完成了一个基于Flutter框架的二手物品交易平台项目。这个项目最吸引我的地方在于它完美结合了Flutter的跨平台优势与HarmonyOS的生态特性,实现了"…

2026/10/14 0:00:41 阅读更多 →
DFS算法解决飞机降落调度问题实战

DFS算法解决飞机降落调度问题实战

1. 项目背景与核心思路飞机降落问题是一个经典的调度优化场景,也是算法竞赛和面试中的高频题目。这个题目要求我们合理安排多架飞机的降落顺序和时间,确保所有飞机都能安全着陆而不发生冲突。在实际航空管制中,这类问题直接关系到飞行安全和机…

2026/10/14 0:00:41 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/13 2:54:56 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/13 16:22:04 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/13 1:58:08 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 22:01:27 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/13 14:57:39 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/12 18:11:17 阅读更多 →