Python中最好用的6个地图可视化库

2021-02-22 12:01:07 浏览数 (1)

❝原作者: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配合工作:

代码语言:javascript复制
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效果示例:

图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 notebokjupyter lab中渲染出界面:

图5

5.IpyLeaflet

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

图6

6.geopandas

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

图7


0 人点赞