讲师中心 微信公众号
AI工具推荐 视频效率加速

在Folium地图中嵌入交互式图表

风涛吖_8407

风涛吖_8407

发布时间:2025-12-13 16:49:02

|

577人浏览过

|

来源于php中文网

原创

在folium地图中嵌入交互式图表

本教程详细指导如何在Folium交互式地图中集成数据可视化图表。通过安装必要的库、创建地图对象、使用Matplotlib等工具生成图表、将其转换为HTML格式,并最终通过Folium的弹出窗口(Popup)功能将图表绑定到地图标记上,从而生成一个包含丰富数据洞察的交互式地理可视化页面。

引言

Folium是一个强大的Python库,用于创建基于Leaflet.js的交互式地图。它允许用户轻松地将Python数据可视化到可缩放的地图上。在许多数据分析场景中,我们不仅希望在地图上展示地理信息,还希望在特定的地理位置上提供更详细的数据洞察,例如通过图表展示该区域的统计数据。本教程将详细介绍如何将动态生成的图表嵌入到Folium地图的弹出窗口中,实现丰富的交互式数据可视化。

环境准备

在开始之前,需要安装以下Python库:

  • folium: 用于创建和操作地图。
  • matplotlib: 用于生成图表。
  • mpld3: 用于将Matplotlib图表转换为交互式HTML。

可以通过pip命令进行安装:

pip install folium matplotlib mpld3

创建Folium地图

首先,导入必要的库并创建一个基本的Folium地图对象。地图的中心坐标和初始缩放级别可以根据需求进行设置。

GitHub & Developer Data
GitHub & Developer Data

面向AI代理的GitHub及开发者数据——仓库元数据(星标、语言、许可证)、仓库审计与风险评分、用户资料、最新发布和gist内容...

下载
import folium
import matplotlib.pyplot as plt
import mpld3

# 创建一个地图对象,指定中心坐标和初始缩放级别
# 请替换为实际的经纬度
map_latitude = 34.0522
map_longitude = -118.2437
m = folium.Map(location=[map_latitude, map_longitude], zoom_start=12)

生成数据图表

接下来,使用Matplotlib或其他你偏好的绘图库创建一个图表。这个图表可以是任何类型,例如柱状图、折线图、饼图等,只要它能被转换为HTML格式。以下是一个简单的柱状图示例:

# 示例数据
data = [10, 20, 30, 40, 50]
labels = ['A', 'B', 'C', 'D', 'E']

# 创建一个Matplotlib图表
fig, ax = plt.subplots(figsize=(6, 4)) # 创建图和轴对象
ax.bar(labels, data, color='skyblue')
ax.set_xlabel('类别')
ax.set_ylabel('数值')
ax.set_title('示例数据图表')

# 注意:plt.show() 在这里不应该被调用,因为它会直接显示图表而不是返回对象
# plt.show()

将图表转换为HTML

为了将Matplotlib图表嵌入到Folium地图中,我们需要将其转换为HTML格式。mpld3库提供了fig_to_html()函数,可以将Matplotlib的Figure对象转换为一个包含交互式JavaScript和HTML的字符串。

# 将Matplotlib图表转换为HTML字符串
chart_html = mpld3.fig_to_html(fig) # 使用之前创建的fig对象

在地图中嵌入图表

现在,我们已经有了地图对象和图表的HTML表示。下一步是将图表HTML绑定到地图上的一个标记(Marker)的弹出窗口(Popup)中。当用户点击该标记时,图表就会显示出来。

# 定义标记的位置
# 请替换为实际的标记经纬度
marker_latitude = 34.0522
marker_longitude = -118.2437

# 创建一个Folium标记
marker = folium.Marker(location=[marker_latitude, marker_longitude])

# 创建一个Popup对象,并将图表HTML作为内容
popup = folium.Popup(chart_html, max_width=600) # max_width控制弹出窗口的最大宽度

# 将Popup添加到Marker
marker.add_child(popup)

# 将Marker添加到地图
marker.add_to(m)

保存并查看地图

最后一步是将创建好的地图保存为一个HTML文件。这个HTML文件可以在任何现代浏览器中打开,并展示带有嵌入式图表的交互式地图。

# 保存地图为HTML文件
m.save('map_with_chart.html')

print("地图已保存为 'map_with_chart.html'。请在浏览器中打开查看。")

注意事项与扩展

  1. 图表库选择: 除了Matplotlib,你也可以使用其他图表库,如Plotly、Bokeh或Altair。这些库通常也提供将图表导出为独立HTML或JSON(可在前端渲染)的功能,可以采用类似的方式嵌入。
  2. Popup内容: folium.Popup不仅可以包含图表HTML,还可以包含任何HTML内容,例如文本、图片或表格。你可以将多个信息组合在一个弹出窗口中。
  3. 交互性: mpld3生成的HTML图表具有一定的交互性,例如缩放和平移。如果需要更高级的交互(如数据点悬停提示),可能需要使用Plotly或Bokeh等库,它们在Web环境中提供了更丰富的交互功能。
  4. 性能考虑: 如果地图上有大量带有复杂图表的标记,可能会影响地图的加载性能。在这种情况下,可以考虑按需加载图表数据,或者在缩放级别较高时才显示详细图表。
  5. Folium插件: Folium还提供了许多插件,如MarkerCluster用于聚合大量标记,DivIcon用于自定义标记图标等。结合这些插件可以创建更复杂的地图应用。

总结

通过本教程,我们学习了如何利用Folium、Matplotlib和mpld3库,在交互式地图中嵌入动态生成的数据图表。这个过程涉及创建地图、生成图表、将图表转换为HTML,然后通过弹出窗口将其绑定到地图标记上。这种方法极大地增强了地理数据可视化的能力,使得用户能够在地图上直观地探索数据背后的故事。掌握这一技能,将能为你的数据分析和报告增添更强大的交互性和洞察力。

热门AI工具

更多
WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

小橡皮AI

一款AI工具,主要用于小橡皮一键去AI味,将机器味重的内容改得更有活人感,防止因为 AI 内容被平台打上 AI 标签,以及限流,适合需要提升相关任务效率的用户。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

超级麦吉

一款通过数字员工协作完成调研、数据分析与文档制作的AI办公平台。

墨刀AI
墨刀AI Hot

一款AI图像与设计工具,主要用于产品经理的专属智能体,适合需要提升相关任务效率的用户。

讯飞绘文

讯飞绘文是一款由科大讯飞推出的一站式 AIGC 内容运营平台。

相关专题

更多
json数据格式
json数据格式

JSON是一种轻量级的数据交换格式。本专题为大家带来json数据格式相关文章,帮助大家解决问题。

2195

2023.08.07

json是什么
json是什么

JSON是一种轻量级的数据交换格式,具有简洁、易读、跨平台和语言的特点,JSON数据是通过键值对的方式进行组织,其中键是字符串,值可以是字符串、数值、布尔值、数组、对象或者null,在Web开发、数据交换和配置文件等方面得到广泛应用。本专题为大家提供json相关的文章、下载、课程内容,供大家免费下载体验。

3462

2023.08.23

jquery怎么操作json
jquery怎么操作json

操作的方法有:1、“$.parseJSON(jsonString)”2、“$.getJSON(url, data, success)”;3、“$.each(obj, callback)”;4、“$.ajax()”。更多jquery怎么操作json的详细内容,可以访问本专题下面的文章。

1156

2023.10.13

go语言处理json数据方法
go语言处理json数据方法

本专题整合了go语言中处理json数据方法,阅读专题下面的文章了解更多详细内容。

3979

2025.09.10

pip安装使用方法
pip安装使用方法

安装步骤:1、确保Python已经正确安装在您的计算机上;2、下载“get-pip.py”脚本;3、按下Win + R键,然后输入cmd并按下Enter键来打开命令行窗口;4、在命令行窗口中,使用cd命令切换到“get-pip.py”所在的目录;5、执行安装命令;6、验证安装结果即可。大家可以访问本专题下的文章,了解pip安装使用方法的更多内容。

3230

2023.10.09

更新pip版本
更新pip版本

更新pip版本方法有使用pip自身更新、使用操作系统自带的包管理工具、使用python包管理工具、手动安装最新版本。想了解更多相关的内容,请阅读专题下面的文章。

7343

2024.12.20

pip设置清华源
pip设置清华源

设置方法:1、打开终端或命令提示符窗口;2、运行“touch ~/.pip/pip.conf”命令创建一个名为pip的配置文件;3、打开pip.conf文件,然后添加“[global];index-url = https://pypi.tuna.tsinghua.edu.cn/simple”内容,这将把pip的镜像源设置为清华大学的镜像源;4、保存并关闭文件即可。

9002

2024.12.23

python升级pip
python升级pip

本专题整合了python升级pip相关教程,阅读下面的文章了解更多详细内容。

4647

2025.07.23

Vite 项目如何打包和部署
Vite 项目如何打包和部署

Vite项目打包部署专题汇集生产构建、产物预览、输出目录、资源路径、Nginx与GitHub Pages部署及常见白屏和路由404问题的已审核文章,帮助读者完成上线流程。

20

2026.10.28

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
WebStorm 官方调试文档
WebStorm 官方调试文档

共0课时 | 0人学习

React 教程
React 教程

共58课时 | 12.3万人学习

TypeScript 教程
TypeScript 教程

共19课时 | 6.7万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn