由很多基于地圖可視化的項目做得非常有趣或者實用,比如一些根據(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
8.未解決
? 彈出pop_up顯示圖片不會。
小結(jié)
到此這篇關(guān)于Python利用folium實現(xiàn)地圖可視化的文章就介紹到這了,更多Python相關(guān)學(xué)習(xí)知識和folium庫的使用細節(jié)等內(nèi)容請搜索W3Cschool以前的文章或繼續(xù)瀏覽下面的相關(guān)文章。