1. 从零开始:你的第一张交互地图
如果你之前用过Python做数据分析,画过柱状图、折线图,那你有没有想过,把数据直接“画”在地图上会是什么效果?比如,你想展示全国各个分店的销售额,或者追踪一批物流车辆的实时位置,又或者只是想做个旅行足迹地图和朋友分享。这时候,一张可以拖拽、缩放、点击查看详情的地图,远比静态的图表要生动得多。
我刚开始接触地图可视化时,也觉得这玩意儿肯定很复杂,得学什么GIS专业软件。后来发现了Folium这个库,简直像发现了新大陆。它本质上是一个Python和Leaflet(一个非常流行的开源JavaScript地图库)之间的“翻译官”。你不需要写一行JavaScript代码,只用你熟悉的Python语法,就能调用Leaflet强大的能力,生成漂亮、交互性强的网页地图。最终产出的就是一个独立的HTML文件,你可以在浏览器里直接打开,或者嵌入到你的网页应用中。
这么说可能还有点抽象,我们直接上手。首先,确保你安装了Folium。打开你的终端或命令提示符,一行命令搞定:
pip install folium
安装好后,打开你的Python编辑器(Jupyter Notebook、VS Code、PyCharm都行),我们写三行代码:
import folium
# 以北京为中心,创建一个地图
m = folium.Map(location=[39.9, 116.4], zoom_start=12)
m
如果你在Jupyter Notebook里运行,地图会直接显示出来。你会看到一张以北京为中心的地图,可以用鼠标拖拽,用滚轮缩放。location参数接受一个[纬度, 经度]的列表,这里就是北京的大致坐标。zoom_start控制初始缩放级别,数字越大,看得越细致,我一般从10到15开始尝试。
如果不在Notebook环境,比如在普通的Python脚本里,你可以把地图保存为HTML文件:
m.save(‘my_first_map.html’)
然后用浏览器打开这个my_first_map.html文件,效果一模一样。看到这里,你是不是觉得“这就成了?”。对,基础地图就是这么简单。但Folium的魅力远不止于此,它就像一张白纸,等着你用各种技巧把它变成信息丰富、体验出色的个性化地图。接下来,我就分享几个我实战中觉得最有用、最能出效果的技巧。
2. 技巧一:告别单调,玩转地图皮肤与自定义底图
默认的OpenStreetMap样式虽然经典,但看久了难免觉得单调。而且不同的数据场景,适合的地图底色也不同。比如展示地形数据,用一个凸显地貌的底图会更合适;做夜间模式的应用,深色底图能减少视觉疲劳。Folium内置了多种“皮肤”,一键就能切换。
2.1 使用内置地图样式
Folium预置了一些非常好看的免费地图样式,通过tiles参数就能调用。我常用的是CartoDB positron和Stamen Terrain。前者是一种非常干净、明亮的现代风格,背景几乎是纯白,能让你叠加的数据点格外突出,特别适合做数据可视化报告。后者是地形图,有等高线和地貌渲染,适合户外、地理相关的应用。
# 使用干净明亮的CartoDB positron样式
m_light = folium.Map(location=[39.9, 116.4], zoom_start=10, tiles=‘CartoDB positron’)
# 使用地形图样式
m_terrain = folium.Map(location=[39.9, 116.4], zoom_start=10, tiles



被折叠的 条评论
为什么被折叠?



