Python绘制地图神器folium介绍及安装使用教程

本文介绍了Python的Folium库,用于创建交互式地图的工具,它结合了Python的数据处理能力和Leaflet.js的映射功能。Folium提供了丰富的地图元素和自定义选项,支持GeoJSON和TopoJSON格式,可以创建各种类型的可视化地图。文章详细讲解了Folium的基本使用,包括创建不同级别的地图、添加标记、动态放置标记等,并通过实例展示了如何使用Folium将停车场地理位置数据进行可视化。最后,通过使用MarkerCluster插件对地图进行了优化,清晰展示了各区域的停车场分布情况。
该文章已生成可运行项目,

之前给大家介绍过多种Python可视化模块,但使用他们进行地理可视化都很简陋。

所以想要绘制更精美的可视化地图?想在地图上自由的设置各种参数?想获得灵活的交互体验?

今天它就来了,Python绘制地图神器folium,上手直接开大!

一、folium简介和安装

folium 建立在 Python 生态系统的数据应用能力和 Leaflet.js 库的映射能力之上,在Python中操作数据,然后通过 folium 在 Leaflet 地图中可视化。

folium 相比较于国内百度的 pyecharts 灵活性更强,能够自定义绘制区域,并且展现形式更加多样化。[1]

1. folium的简介

  • Folium是建立在 Python 生态系统的数据整理 Datawrangling 能力和 Leaflet.js 库的映射能力之上的开源库。用 Python 处理数据,然后用 Folium 将它在 Leaflet 地图上进行可视化。Folium能够将通过 Python 处理后的数据轻松地在交互式的 Leaflet 地图上进行可视化展示。它不单单可以在地图上展示数据的分布图,还可以使用 Vincent/Vega 在地图上加以标记。

  • 这个开源库中有许多来自 OpenStreetMap、MapQuest Open、MapQuestOpen Aerial、Mapbox和Stamen 的内建地图元件,而且支持使用 Mapbox 或 Cloudmade 的 API 密钥来定制个性化的地图元件。Folium支持 GeoJSON 和 TopoJSON 两种文件格式的叠加,也可以将数据连接到这两种文件格式的叠加层,最后可使用 color-brewer 配色方案创建分布图。

  • Folium可以让你用 Python 强大生态系统来处理数据,然后用 Leaflet 地图来展示。Folium内置一些来自 OpenStreetMap、MapQuest Open、MapQuest Open Aerial、Mapbox和Stamen 的地图元件(tilesets),并且支持用 Mapbox 或者 Cloudmade API keys 来自定义地图元件。Folium支持 GeoJSON 和 TopJSON 叠加(overlays),绑定数据来创造一个分级统计图(Choropleth map)。但是,Folium库绘制热点图的时候,需要联网才可显示。

2. 安装folium

pip install folium -i http://pypi.douban.com/simple --trusted-host pypi.douban.com

👆这里直接使用了国内豆瓣源

二、基本使用

folium 显示地图的类为 folium.Map,类的声明如下:

class folium.Map(location=None, width='100%', height='100%', left='0%', top='0%', position='relative', tiles='OpenStreetMap', attr=None, min_zoom=0, max_zoom=18, zoom_start=10, min_lat=-90, max_lat=90, min_lon=-180, max_lon=180, max_bounds=False, crs='EPSG3857', control_scale=False, prefer_canvas=False, no_touch=False, disable_3d=False, png_enabled=False, zoom_control=True, **kwargs)

几个重要的参数:

  • location:经纬度,list 或者 tuple 格式,顺序为 latitude, longitude

  • zoom_start:缩放值,默认为 10,值越大比例尺越小,地图放大级别越大

  • control_scale:Bool型,控制是否在地图上添加比例尺,默认为 False 即不添加

  • tiles:显示样式,默认 "OpenStreetMap",也就是开启街道显示

  • crs:地理坐标参考系

本文章已经生成可运行项目
08-02
### 创建基础地图 Folium 是一个非常强大的用于创建交互式地图的 Python ,它基于 Leaflet.js 构建,允许用户在没有编写任何 JavaScript 代码的情况下创建复杂的地图应用。要开始使用 Folium,首先需要安装它。可以通过 pip 安装 Folium: ```bash pip install folium ``` 一旦安装完成,就可以开始创建一个简单的地图实例。例如,创建一个以北京为中心的地图,并设置初始缩放级别为 12: ```python import folium # 创建以北京为中心的地图 m = folium.Map(location=[39.9042, 116.4074], zoom_start=12) # 保存为HTML文件 m.save('beijing_map.html') ``` 这段代码展示了如何使用 Folium 创建一个基础地图,并将其保存为 HTML 文件,以便可以在浏览器中打开查看[^2]。 ### 添加标记 除了创建基础地图之外,还可以向地图上添加标记来突出显示特定位置。这可以通过调用 `folium.Marker` 方法并传入坐标和一些可选参数如弹窗文本等实现: ```python # 添加一个标记到北京的位置 folium.Marker([39.9042, 116.4074], popup='北京').add_to(m) # 保存更新后的地图 m.save('beijing_map_with_marker.html') ``` ### 高级功能 Folium 不仅限于创建基础地图和添加标记,它还支持更多高级功能,如绘制多边形、热力图、Choropleth 地图等。这些功能可以帮助用户更好地理解和展示地理空间数据。例如,绘制一个简单的多边形: ```python # 定义多边形的顶点 polygon_points = [ [39.9042, 116.4074], [39.9042, 116.5074], [39.8042, 116.5074], [39.8042, 116.4074] ] # 在地图上绘制多边形 folium.Polygon(locations=polygon_points, color="red", fill=True, fill_color="blue").add_to(m) # 保存包含多边形的地图 m.save('beijing_map_with_polygon.html') ``` 通过这些基本和高级功能的学习与实践,用户能够创建出更加丰富、动态且具有洞察力的地图可视化作品,为数据分析和决策支持提供有力支持[^3]。
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值