原作者:Abdishakur



python Basemap 可视化 轨迹 python地图可视化库_nagios

图1

地理空间数据无处不在:在这次新冠肺炎大流行中,我们见识到了各种地理空间数据可视化工具制作出的各种风格的地图。而对Python的使用者来说,有几个非常强大的库可以帮助我们进行地理空间数据可视化。

通过本文,我将给大家分享Python生态中最好用的6地理空间数据可视化工具以及它们的一些案例。

1.PyViz/HoloViz(Geoviews, Datashader, HvPlot)

Holoviz维护的几个库有用你可能需要的所有数据可视化功能,涵盖了仪表盘和交互式可视化。Geoviews就是其中专注于地理空间数据可视化的库,提供了灵活方便的地理空间数据可视化功能。

GeoViews是一个辅助探索和可视化地理数据、气象类数据以及海洋数据等与天气、大气、遥感密切相关的数据集的Python

Geoviews的API提供直观的界面和通用的语法,使得利用它制作可视化作品非常容易,譬如下面的例子中与geopandas配合工作:

import geoviews as gv
imporg geopandas as gpd
gv.Polygons(gpd.read_file(gpd.datasets.get_path('naturalearth_lowres')), vdims=['pop_est', ('name', 'Country')]).opts(
    tools=['hover'], width=600, projection=crs.Robinson()
)

图2

除此之外,PyViz生态中还提供了其他的用于处理地理空间数据的库,譬如HvPlotDatashader等,以及用于制作仪表盘appPanel库。

2.Folium

Folium是著名的web地图可视化库Leaflet.jsPython开放的接口,配合大量有意思的插件制作出交互式的在线地图。

Folium入门起来非常简单,你可以通过调用Folium.Map迅速的看到基础地图,也可以根据你的数据对其叠加不同图层,下面是Folium效果示例:

python Basemap 可视化 轨迹 python地图可视化库_nagios_02

图3

3.Plotly/Plotly Express

Plotly以及它的高级API库Plotly Express针对地理空间数据可视化有着拓展功能,虽然暂不支持与geopandas的交互,但已经足够制作出很多类型的地图,并且随着2019年Plotly Express的推出,用Plotly制作地图变得越来越容易。

并且基于Dash,可以很容易地制作出web应用,帮助你向更多的人展示你的可视化作品:

python Basemap 可视化 轨迹 python地图可视化库_接口_03

图4

4.KeplerGl

kepler.gl for jupyter是大规模地理空间数据可视化绝佳的工具。它将世界范围内广泛被使用的由Uber开源的kepler.gl嵌入到jupyter的界面中。

只需要简单的几行代码,就可以在jupyter notebokjupyter lab中渲染出界面:

python Basemap 可视化 轨迹 python地图可视化库_nagios_04

图5

5.IpyLeaflet

类似foliumIpyLeaflet是另一个基于Leaflet的可视化库,可以用来制作在线交互式地图,其与folium相比对jupyter的支持更加丰富,可以结合ipywidgets中的众多网页控件实现更复杂更丰富的网页交互功能:

python Basemap 可视化 轨迹 python地图可视化库_css_05

图6

6.geopandas

压轴的当然要留给我们Python GIS界的中流砥柱——geopandas了,不同于前面所介绍的几个库,geopandas赋予了使用者无限自由的操纵矢量数据并将其可视化的能力,配合matplotlib的丰富功能,使得我们可以充分发挥想象力,做出极具设计感的可视化作品:

python Basemap 可视化 轨迹 python地图可视化库_css_06

图7