App下載

Python怎么實現(xiàn)地圖可視化?folium介紹!

來源: 倒影年華 2021-07-17 10:16:53 瀏覽數(shù) (4619)
反饋

由很多基于地圖可視化的項目做得非常有趣或者實用,比如一些根據(jù)地理位置信息來統(tǒng)計周圍的人、自己的行走軌跡、地理區(qū)域的某項數(shù)據(jù)分布等。那么他們是怎么做到的呢?今天小編就來講講python怎么實現(xiàn)地圖可視化吧!

 地理數(shù)據(jù)是國家的保密項目之一,有時候無心的地理數(shù)據(jù)收集可能造成地理數(shù)據(jù)泄露,給國家?guī)戆踩{,在學(xué)習(xí)地理位置信息的使用的時候請注意數(shù)據(jù)的使用,盡量不要傳播一些特殊的數(shù)據(jù)(比如測距,地標等數(shù)據(jù))。

folium的簡介

用Python處理數(shù)據(jù),然后用Folium將它在Leaflet地圖上進行可視化。Folium能夠?qū)⑼ㄟ^Python處理后的數(shù)據(jù)輕松地在交互式的Leaflet地圖上進行可視化展示。它不單單可以在地圖上展示數(shù)據(jù)的分布圖,還可以使用Vincent/Vega在地圖上加以標記。

這個開源庫中有許多來自O(shè)penStreetMap、MapQuest Open、MapQuestOpen Aerial、Mapbox和Stamen的內(nèi)建地圖元件,而且支持使用Mapbox或Cloudmade的API密鑰來定制個性化的地圖元件。Folium支持GeoJSON和TopoJSON兩種文件格式的疊加,也可以將數(shù)據(jù)連接到這兩種文件格式的疊加層,最后可使用color-brewer配色方案創(chuàng)建分布圖。

Folium可以讓你用Python強大生態(tài)系統(tǒng)來處理數(shù)據(jù),然后用Leaflet地圖來展示。Folium內(nèi)置一些來自O(shè)penStreetMap、MapQuest Open、MapQuest Open Aerial、Mapbox和Stamen的地圖元件(tilesets),并且支持用Mapbox或者Cloudmade API keys來自定義地圖元件。Folium支持GeoJSON和TopJSON疊加(overlays),綁定數(shù)據(jù)來創(chuàng)造一個分級統(tǒng)計圖(Choropleth map)。但是,F(xiàn)olium庫繪制熱點圖的時候,需要聯(lián)網(wǎng)才可顯示。

1.安裝folium模塊

pip install folium

2.安裝jupyter

pip install jupyter

便于查看地圖

3.查看世界地圖

import folium
m = folium.Map() # 顯示地圖
m

顯示世界地圖

4.查看中國地圖

import folium
m = folium.Map(location=[30,100],zoom_start=3)
m
  • location 經(jīng)緯度,list 或者 tuple 格式,順序為 latitude(緯度), longitude(經(jīng)度)
  • zoom_start 縮放值,默認為 10,值越大比例尺越小,地圖放大級別越大
  • tiles 顯示樣式,默認*‘OpenStreetMap'*,也就是開啟街道顯示
  • crs 地理坐標參考系統(tǒng),默認為"EPSG3857"

5.武漢市地圖

m = folium.Map(location=[30.6,114.4],zoom_start=8) # 武漢市地圖

武漢市地圖

修改樣式

m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Toner')

武漢市地圖

m = folium.Map(location=[30.6,114.4],zoom_start=8,tiles='Stamen Terrain')

武漢市地圖

6.添加標記

import folium
wuhan_map = folium.Map(location=[30.6,114.4],zoom_start=8)

# 添加標記
folium.Marker(
    location=[30.6,114.3], # 位置
    popup='Wu Han City Marker', # 鼠標點擊 彈出的說明
    icon=folium.Icon(icon='cloud') # 圖標樣式
).add_to(wuhan_map)

folium.Marker(
    location=[30.6,114.33],
    popup='Timberline Lodge',
    icon=folium.Icon(color='green')
).add_to(wuhan_map)

folium.Marker(
    location=[30.6,114.35],
    popup='Some Other Location',
    icon=folium.Icon(color='red', icon='info-sign')
).add_to(wuhan_map)
folium.Circle(  # 添加圓
    radius=200,
    location=(30.6,114.32),
    popup='The Waterfront',
    color='crimson',
    fill=False,
).add_to(wuhan_map)

folium.CircleMarker(    #添加藍色圓環(huán)
    location=(30.6,114.37),
    radius=50,
    popup='Laurelhurst Park',
    color='#3186cc',
    fill=True,
    fill_color='#3186cc'
).add_to(wuhan_map)

# 獲取點的經(jīng)緯度
# wuhan_map.add_child(folium.LatLngPopup())

# 動態(tài)添加標簽
wuhan_map.add_child(folium.ClickForMarker(popup='Waypoint'))

地圖標記

7.查找武漢科技大學(xué)

import foliumposition = [30.4415, 114.2628] # 武科大的經(jīng)緯度school_mp = folium.Map(location=position,zoom_start=15)school_mp

武漢科技大學(xué)定位

8.未解決

? 彈出pop_up顯示圖片不會。

小結(jié)

到此這篇關(guān)于Python利用folium實現(xiàn)地圖可視化的文章就介紹到這了,更多Python相關(guān)學(xué)習(xí)知識和folium庫的使用細節(jié)等內(nèi)容請搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。



0 人點贊