打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
folium,一个神奇的 python 库

大家好,我是小寒。

https://github.com/python-visualization/folium

Folium 是一个 Python 库,它使用 Leaflet.js 和 Open Street Map 数据来创建高质量的地图可视化。
今天我们将演示如何使用 Folium 生成交互式地图可视化。

初体验

库的安装

可以使用 pip 轻松安装 folium 库。
pip install folium
安装库后,使用1行代码即可创建地图。
import folium
folium.Map(location=[48.130518, 11.5364172], zoom_start=12)

这将自动生成交互式地图,并将其输出到 jupyter 笔记本,你可以在其中与其交互。

函数 Map 接受一些可选参数,在我们的例子中,我们使用位置(坐标)和默认缩放级别。

尽管这已经非常令人兴奋,但我们并没有对此做任何特别的事情。

folium 的真正强大之处在于将库的映射功能与 Python 的数据操作功能相结合

添加标记

我们可以添加到地图中的一项基本功能是能够标记地点以便轻松找到它们,或者突出显示重要信息。

这可以通过 folium 的 Marker 函数轻松完成,如下所示。

首先我们创建一个地图对象,然后我们还创建一个标记对象。

标记对象是通过将坐标传递给点来创建的,当有人单击标记时我们希望在弹出窗口上显示什么,以及标记的工具提示和其他选项。

标记的图表弹出窗口

Folium 为任何标记类型的可视化提供内置支持。可视化由 vincent 和 altair 库支持 。

为了渲染一些可视化效果,我们需要一些数据,所以让我们先获取这些数据。

import json
import requests
url = (
    'https://raw.githubusercontent.com/python-visualization/folium/master/examples/data'
)
data = json.loads(requests.get(f'{url}/vis1.json').text)
接下来,让我们在标记中绘制数据。
m = folium.Map(location=[48.218871184761596, 11.624819877497147], zoom_start=15, tiles='Stamen Terrain')
marker = folium.Marker(
    location=[48.218871184761596, 11.624819877497147],
    popup=folium.Popup(max_width=450).add_child(
        folium.Vega(data, width=450, height=250)
    ),
)
marker.add_to(m)
m

热图

热图是地图的另一种流行选择,它们可用于多种目的,包括天气状况、污染、人口密度等。
它们是非常强大的工具,并且在 pandas 和 folium 的帮助下超级容易构建。

让我们以芝加哥市的自行车站为例。

我在网上发现了一个有趣的数据集,其中包含自行车站的坐标,我们将用它来构建热图。
首先让我们加载数据。
stations_url = 'https://gbfs.divvybikes.com/gbfs/en/station_information.json'
stations = json.loads(requests.get(stations_url).text)['data']['stations']
stations = pd.json_normalize(stations)
stations = stations[['lat''lon']]
stations.head()
自行车站数据有多列,包含大量数据,但出于我们的目的,我们只需要坐标,因此我们删除其余部分。

现在,每一行代表一组放置自行车站的坐标(纬度和经度)。

接下来我们将构建一个热图来突出显示城市中自行车站较为集中的区域。
from folium import plugins

m = folium.Map([41.8781, -87.6298], zoom_start=11)
# convert to (n, 2) nd-array format for heatmap
stationArr = stations.values
# plot heatmap
m.add_child(plugins.HeatMap(stationArr, radius=15))
m
最后


本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Py之folium:python库之folium的简介、安装、使用方法之详细攻略
python在openstreetmap地图上绘制路线图
手把手|如何用Python绘制JS地图?
编程语言Python json(反)序列化对象
数据呈现丨22个!史上最全Python数据可视化库大合集
深度盘点 | 史上最全python数据可视化库
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服