📅  最后修改于: 2023-12-03 15:37:38.708000             🧑  作者: Mango
Folium 是一个基于 Leaflet.js 构建的 Python 地图库,可以用于可视化地理空间数据。
可以使用 pip 安装 folium 库:
pip install folium
导入 folium 包并创建一个地图:
import folium
m = folium.Map(location=[45.5236, -122.6750], zoom_start=13)
m
结果会在 Jupyter Notebook 中显示一个地图。如果在其他环境中运行,可以使用 m.save('map.html')
把地图保存到磁盘中,并在浏览器中查看。
我们可以在地图上加上标记点。下面的例子从 CSV 文件中读取标记点的经纬度,并在地图上展示:
import pandas as pd
df = pd.read_csv('locations.csv')
for index, row in df.iterrows():
folium.Marker(location=[row['Latitude'], row['Longitude']]).add_to(m)
m
上面的代码使用 Pandas 读取一个 CSV 文件,并根据经纬度在地图上添加标记点。
Folium 还支持热力图。下面的例子从 CSV 文件中读取热力图数据,并在地图上展示:
from folium.plugins import HeatMap
df = pd.read_csv('locations.csv')
heat_data = [[row['Latitude'], row['Longitude']] for index, row in df.iterrows()]
HeatMap(data=heat_data).add_to(m)
m
上面的代码使用 Pandas 读取一个 CSV 文件,并提取出经纬度组成热力图的数据。HeatMap 用于创建热力图,然后添加到地图上。
Folium 还支持 GeoJSON 格式的地理空间数据。下面的例子使用 GeoJSON 数据创建一个政治地图,并展示出来:
import json
import urllib.request
url = 'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data'
country_geo = f'{url}/world-countries.json'
with urllib.request.urlopen(country_geo) as url:
geojson = json.loads(url.read().decode())
folium.GeoJson(geojson).add_to(m)
m
上面的代码使用 urllib.request 获取 GeoJSON 格式的地理空间数据,并使用 Folium 中的 GeoJson 类把数据添加到地图上。GeoJson 类可以接受本地文件或 URL,所以你可以根据实际情况修改代码。
Folium 是一个十分强大的 Python 地图库,支持很多功能和数据格式,可以用于可视化各种地理空间数据。以上只是一些基本用法和例子,更多功能可以参考官方文档。