Python 中最好用的 6 個(gè)地圖可視化庫(kù)
閱讀本文大概需要 3 分鐘。
?原作者:Abdishakur
原文地址:https://towardsdatascience.com/best-libraries-for-geospatial-data-visualisation-in-python-d23834173b35
編譯:費(fèi)弗里
?

地理空間數(shù)據(jù)無(wú)處不在:在這次新冠肺炎大流行中,我們見(jiàn)識(shí)到了各種地理空間數(shù)據(jù)可視化工具制作出的各種風(fēng)格的地圖。而對(duì)Python的使用者來(lái)說(shuō),有幾個(gè)非常強(qiáng)大的庫(kù)可以幫助我們進(jìn)行地理空間數(shù)據(jù)可視化。
通過(guò)本文,我將給大家分享Python生態(tài)中最好用的6地理空間數(shù)據(jù)可視化工具以及它們的一些案例。
1.PyViz/HoloViz(Geoviews, Datashader, HvPlot)
Holoviz維護(hù)的幾個(gè)庫(kù)有用你可能需要的所有數(shù)據(jù)可視化功能,涵蓋了儀表盤(pán)和交互式可視化。Geoviews就是其中專注于地理空間數(shù)據(jù)可視化的庫(kù),提供了靈活方便的地理空間數(shù)據(jù)可視化功能。
??
GeoViews是一個(gè)輔助探索和可視化地理數(shù)據(jù)、氣象類數(shù)據(jù)以及海洋數(shù)據(jù)等與天氣、大氣、遙感密切相關(guān)的數(shù)據(jù)集的Python庫(kù)
Geoviews的 API 提供直觀的界面和通用的語(yǔ)法,使得利用它制作可視化作品非常容易,譬如下面的例子中與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()
)

除此之外,PyViz生態(tài)中還提供了其他的用于處理地理空間數(shù)據(jù)的庫(kù),譬如HvPlot、Datashader等,以及用于制作儀表盤(pán)app的Panel庫(kù)。
2.Folium
Folium是著名的web地圖可視化庫(kù)Leaflet.js向Python開(kāi)放的接口,配合大量有意思的插件制作出交互式的在線地圖。
Folium入門(mén)起來(lái)非常簡(jiǎn)單,你可以通過(guò)調(diào)用Folium.Map迅速的看到基礎(chǔ)地圖,也可以根據(jù)你的數(shù)據(jù)對(duì)其疊加不同圖層,下面是Folium效果示例:

3.Plotly/Plotly Express
Plotly以及它的高級(jí)API庫(kù)Plotly Express針對(duì)地理空間數(shù)據(jù)可視化有著拓展功能,雖然暫不支持與geopandas的交互,但已經(jīng)足夠制作出很多類型的地圖,并且隨著2019年Plotly Express的推出,用Plotly制作地圖變得越來(lái)越容易。
并且基于Dash,可以很容易地制作出web應(yīng)用,幫助你向更多的人展示你的可視化作品:

4.KeplerGl
kepler.gl for jupyter是大規(guī)模地理空間數(shù)據(jù)可視化絕佳的工具。它將世界范圍內(nèi)廣泛被使用的由Uber開(kāi)源的kepler.gl嵌入到jupyter的界面中。
只需要簡(jiǎn)單的幾行代碼,就可以在jupyter notebok或jupyter lab中渲染出界面:

5.IpyLeaflet
類似folium,IpyLeaflet是另一個(gè)基于Leaflet的可視化庫(kù),可以用來(lái)制作在線交互式地圖,其與folium相比對(duì)jupyter的支持更加豐富,可以結(jié)合ipywidgets中的眾多網(wǎng)頁(yè)控件實(shí)現(xiàn)更復(fù)雜更豐富的網(wǎng)頁(yè)交互功能:

6.geopandas
壓軸的當(dāng)然要留給我們Python GIS界的中流砥柱——geopandas了,不同于前面所介紹的幾個(gè)庫(kù),geopandas賦予了使用者無(wú)限自由的操縱矢量數(shù)據(jù)并將其可視化的能力,配合matplotlib的豐富功能,使得我們可以充分發(fā)揮想象力,做出極具設(shè)計(jì)感的可視化作品:

以上就是本文的全部?jī)?nèi)容,如有疑問(wèn)歡迎在評(píng)論區(qū)與我進(jìn)行討論~
推薦閱讀
1
2
3
GitHub 標(biāo)星 5.9K+!1250 個(gè)運(yùn)維工程師面試問(wèn)題,看這個(gè)開(kāi)源項(xiàng)目就夠了!
4
崔慶才
靜覓博客博主,《Python3網(wǎng)絡(luò)爬蟲(chóng)開(kāi)發(fā)實(shí)戰(zhàn)》作者
隱形字
個(gè)人公眾號(hào):進(jìn)擊的Coder
長(zhǎng)按識(shí)別二維碼關(guān)注


