图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效果示例:

图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

以上就是本文的全部内容,如有疑问欢迎在评论区与我进行讨论~


©著作权归作者所有:来自51CTO博客作者mb5fe18fab305a5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 基于geopandas的空间数据分析——空间计算篇(上)
  2. 基于geopandas的空间数据分析—geoplot篇(下)
  3. 基于geopandas的空间数据分析—geoplot篇(上)
  4. 基于geopandas的空间数据分析——空间计算篇(下)
  5. 对比Excel,学习pandas数据透视表
  6. 数据分析实战:利用python对心脏病数据集进行分析
  7. 使用sklearn轻松实现数据缩放
  8. 基于geopandas的空间数据分析-深入浅出分层设色
  9. seaborn常用的10种数据分析图表

随机推荐

  1. 关与批处理的问题 一个批处理调用SQLplus
  2. spring-boot mybatis mapper生成sql有问
  3. UPDATE Sql不能在集合中聚合
  4. MySQL入门很简单: 2 MySQL数据类型
  5. 在线求助.Select语句包含ERP单据内表头与
  6. SQL表的简单操作
  7. Sailsjs Mysql ORM在同一个表字段上进行
  8. sql将数据为0的转换为空
  9. C#的委托事件在winform窗体中实现传值备
  10. Java向MySQL数据库插入时间类型Date数据