❝原作者:Abdishakur 原文地址:https://towardsdatascience.com/best-libraries-for-geospatial-data-visualisation-in-python-d23834173b35 编译:费弗里 ❞
图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
生态中还提供了其他的用于处理地理空间数据的库,譬如HvPlot
、Datashader
等,以及用于制作仪表盘app
的Panel
库。
2.Folium
Folium
是著名的web地图可视化库Leaflet.js
向Python
开放的接口,配合大量有意思的插件制作出交互式的在线地图。
Folium
入门起来非常简单,你可以通过调用Folium.Map
迅速的看到基础地图,也可以根据你的数据对其叠加不同图层,下面是Folium
效果示例:
图3
3.Plotly/Plotly Express
Plotly
以及它的高级API库Plotly Express
针对地理空间数据可视化有着拓展功能,虽然暂不支持与geopandas
的交互,但已经足够制作出很多类型的地图,并且随着2019年Plotly Express
的推出,用Plotly
制作地图变得越来越容易。
并且基于Dash
,可以很容易地制作出web应用,帮助你向更多的人展示你的可视化作品:
图4
4.KeplerGl
kepler.gl for jupyter
是大规模地理空间数据可视化绝佳的工具。它将世界范围内广泛被使用的由Uber
开源的kepler.gl
嵌入到jupyter
的界面中。
只需要简单的几行代码,就可以在jupyter notebok
或jupyter lab
中渲染出界面:
图5
5.IpyLeaflet
类似folium
,IpyLeaflet
是另一个基于Leaflet
的可视化库,可以用来制作在线交互式地图,其与folium
相比对jupyter
的支持更加丰富,可以结合ipywidgets
中的众多网页控件实现更复杂更丰富的网页交互功能:
图6
6.geopandas
压轴的当然要留给我们Python GIS
界的中流砥柱——geopandas
了,不同于前面所介绍的几个库,geopandas
赋予了使用者无限自由的操纵矢量数据并将其可视化的能力,配合matplotlib
的丰富功能,使得我们可以充分发挥想象力,做出极具设计感的可视化作品:
图7