日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Python繪制地圖神器folium的新人入門指南

瀏覽:50日期:2022-06-18 16:10:07
目錄一、簡(jiǎn)介二、安裝方法三、主要功能3.1 各級(jí)別地圖 3.1.1 世界地圖3.1.2 國(guó)家地圖3.1.3 市級(jí)地圖3.2 地圖形式3.3 在地圖上標(biāo)記3.3.1 普通標(biāo)記3.3.2 點(diǎn)擊獲取經(jīng)緯度3.3.3 動(dòng)態(tài)放置標(biāo)記3.4 熱力圖繪制3.5 密度地圖繪制3.6 自定義地圖區(qū)域3.6.1 只繪制邊界,不添加數(shù)據(jù)3.6.2 繪制邊界,添加數(shù)據(jù)四、競(jìng)品對(duì)比與優(yōu)劣勢(shì)五、參考資料一、簡(jiǎn)介

想通過(guò) Python 繪制精美的地圖?想在地圖上自由的設(shè)置各種參數(shù)?想獲得靈活的交互體驗(yàn)?這里就有一款Python 神包滿足你:folium

folium 建立在 Python 生態(tài)系統(tǒng)的數(shù)據(jù)應(yīng)用能力和 Leaflet.js 庫(kù)的映射能力之上,在Python中操作數(shù)據(jù),然后通過(guò) folium 在 Leaflet 地圖中可視化。

folium 相比較于國(guó)內(nèi)百度的 pyecharts 靈活性更強(qiáng),能夠自定義繪制區(qū)域,并且展現(xiàn)形式更加多樣化。

附:官方文檔,官方示例,本文 notebook ,完整代碼及數(shù)據(jù)。

二、安裝方法

按照官方的教程即可,如果安裝了 conda ,可以直接

conda install -c conda-forge folium

沒(méi)有安裝的話就使用

python3 -m pip install folium三、主要功能3.1 各級(jí)別地圖

folium 顯示地圖的類為 folium.Map,類的聲明如下

class folium.folium.Map(location=None, width=’100%’, height=’100%’, left=’0%’, top=’0%’, position=’relative’, tiles=’OpenStreetMap’, attr=None, min_zoom=0, max_zoom=18, zoom_start=10, min_lat=-90, max_lat=90, min_lon=-180, max_lon=180, max_bounds=False, crs=’EPSG3857’, control_scale=False, prefer_canvas=False, no_touch=False, disable_3d=False, png_enabled=False, zoom_control=True, **kwargs)

講幾個(gè)重要的參數(shù)

location 經(jīng)緯度,list 或者 tuple 格式,順序?yàn)?latitude, longitude zoom_start 縮放值,默認(rèn)為 10,值越大比例尺越小,地圖放大級(jí)別越大 tiles 顯示樣式,默認(rèn)*‘OpenStreetMap’*,也就是開(kāi)啟街道顯示 crs 地理坐標(biāo)參考系統(tǒng),默認(rèn)為'EPSG3857' 3.1.1 世界地圖

import foliumprint(folium.__version__)# define the world mapworld_map = folium.Map()# display world mapworld_map

Python繪制地圖神器folium的新人入門指南

3.1.2 國(guó)家地圖

# define the national mapnational_map = folium.Map(location=[35.3, 100.6], zoom_start=4)# display national mapnational_map

Python繪制地圖神器folium的新人入門指南

3.1.3 市級(jí)地圖

其實(shí)改變地圖顯示就是改變顯示的經(jīng)緯度和縮放比例,省級(jí)、市級(jí)、縣級(jí)用法雷同,這里舉一個(gè)市級(jí)的例子為例,如北京市:

# define the city mapcity_map = folium.Map(location=[39.93, 116.40], zoom_start=10)# display city mapcity_map

Python繪制地圖神器folium的新人入門指南

顯示效果確實(shí)是不如百度的😓。

3.2 地圖形式

除了上述正常的地圖顯示外,folium 還提供了非常豐富的多樣化顯示,控制顯示效果的變量是tiles,樣式有OpenStreetMap, Stamen Terrain, Stamen Toner, Mapbox Bright, Mapbox Control Room等等,這里挑選幾個(gè)比較常見(jiàn)的

# define the city map,tiles=’Stamen Toner’city_map = folium.Map(location=[39.93, 116.40], zoom_start=10, tiles=’Stamen Toner’)# display city mapcity_map

# define the city map, tiles=’Stamen Terrain’city_map = folium.Map(location=[39.93, 116.40], zoom_start=10, tiles=’Stamen Terrain’)# display city mapcity_map

Python繪制地圖神器folium的新人入門指南

3.3 在地圖上標(biāo)記3.3.1 普通標(biāo)記

添加普通標(biāo)記用 Marker

這里可以選擇標(biāo)記的圖案。

bj_map = folium.Map(location=[39.93, 115.40], zoom_start=12, tiles=’Stamen Terrain’)folium.Marker( location=[39.95, 115.33], popup=’Mt. Hood Meadows’, icon=folium.Icon(icon=’cloud’)).add_to(bj_map)folium.Marker( location=[39.96, 115.32], popup=’Timberline Lodge’, icon=folium.Icon(color=’green’)).add_to(bj_map)folium.Marker( location=[39.93, 115.34], popup=’Some Other Location’, icon=folium.Icon(color=’red’, icon=’info-sign’)).add_to(bj_map)bj_map

Python繪制地圖神器folium的新人入門指南

添加圓形標(biāo)記用 Circle 以及 CircleMarker

bj_map = folium.Map(location=[39.93, 116.40], zoom_start=12, tiles=’Stamen Toner’)folium.Circle( radius=200, location=[39.92, 116.43], popup=’The Waterfront’, color=’crimson’, fill=False,).add_to(bj_map)folium.CircleMarker( location=[39.93, 116.38], radius=50, popup=’Laurelhurst Park’, color=’#3186cc’, fill=True, fill_color=’#3186cc’).add_to(bj_map)bj_map

Python繪制地圖神器folium的新人入門指南

3.3.2 點(diǎn)擊獲取經(jīng)緯度

m = folium.Map(location=[46.1991, -122.1889],tiles=’Stamen Terrain’,zoom_start=13)m.add_child(folium.LatLngPopup())m

通過(guò)點(diǎn)擊鼠標(biāo)便可以獲取點(diǎn)擊出的經(jīng)緯度。

Python繪制地圖神器folium的新人入門指南

3.3.3 動(dòng)態(tài)放置標(biāo)記

m = folium.Map( location=[46.8527, -121.7649], tiles=’Stamen Terrain’, zoom_start=13)folium.Marker( [46.8354, -121.7325], popup=’Camp Muir’).add_to(m)m.add_child(folium.ClickForMarker(popup=’Waypoint’))m

Python繪制地圖神器folium的新人入門指南

3.4 熱力圖繪制

因?yàn)闆](méi)有實(shí)際的經(jīng)緯度坐標(biāo)數(shù)據(jù),所以這里只能模擬一些位置出來(lái),另外每個(gè)位置還需要一個(gè)數(shù)值作為熱力值。

# generated dataimport numpy as npdata = ( np.random.normal(size=(100, 3)) * np.array([[0.1, 0.1, 0.1]]) + np.array([[40, 116.5, 1]])).tolist()data[:3]

數(shù)據(jù)分布

[[40.04666663299843, 116.59569796477264, 0.9667425547098781], [39.86836537517533, 116.28201445195315, 0.8708549157348728], [40.08123232852134, 116.56884585184197, 0.9104952244371285]]

繪制熱力圖

# HeatMapfrom folium.plugins import HeatMapm = folium.Map([39.93, 116.38], tiles=’stamentoner’, zoom_start=6)HeatMap(data).add_to(m)# m.save(os.path.join(’results’, ’Heatmap.html’))m

Python繪制地圖神器folium的新人入門指南

3.5 密度地圖繪制

folium 不僅可以繪制熱力圖,還可以繪制密度地圖,按照經(jīng)緯度進(jìn)行舉例聚類,然后在地圖中顯示。

from folium.plugins import MarkerClusterm = folium.Map([39.93, 116.38], tiles=’stamentoner’, zoom_start=10)# create a mark cluster objectmarker_cluster = MarkerCluster().add_to(m)# add data point to the mark clusterfor lat, lng, label in data: folium.Marker(location=[lat, lng],icon=None,popup=label, ).add_to(marker_cluster)# add marker_cluster to mapm.add_child(marker_cluster)

Python繪制地圖神器folium的新人入門指南

3.6 自定義地圖區(qū)域

folium 一個(gè)非常有優(yōu)勢(shì)的功能就是自定義區(qū)域的繪制了,只要有區(qū)域的邊界數(shù)據(jù),就可以在地圖中以多種多樣的形式展現(xiàn)出來(lái),這里以 folium 官方的美國(guó)地圖為例,源數(shù)據(jù)是一個(gè) .json 文件,里面包含了各個(gè)地區(qū)(美國(guó)各州)的特征(包括邊界經(jīng)緯度列表、簡(jiǎn)稱等),源數(shù)據(jù)傳送門,其數(shù)據(jù)格式如下:

Python繪制地圖神器folium的新人入門指南

3.6.1 只繪制邊界,不添加數(shù)據(jù)

如果只要求繪制邊界,而不顯示邊界區(qū)域的相關(guān)信息,那么這個(gè)是比較容易的,代碼如下

import jsonimport requests# read us-states border with open('us-states.json') as f: us_states = json.load(f)us_map = folium.Map(location=[35.3, -97.6], zoom_start=4)folium.GeoJson( us_states, style_function=lambda feature: {’fillColor’: ’#ffff00’,’color’: ’black’,’weight’: 2,’dashArray’: ’5, 5’ }).add_to(us_map)#display mapus_map

Python繪制地圖神器folium的新人入門指南

3.6.2 繪制邊界,添加數(shù)據(jù)

當(dāng)需要在各個(gè)區(qū)域填充數(shù)據(jù)的時(shí)候,這個(gè)稍微麻煩點(diǎn),不僅需要各個(gè)區(qū)域的邊界數(shù)據(jù),還需要各個(gè)區(qū)域的顯示信息,這里同樣也使用官方的美國(guó)各州的邊界數(shù)據(jù)為例:

import geopandas as gpdimport pandas as pdimport folium, brancastates = gpd.GeoDataFrame.from_features(us_states, crs=fiona.crs.from_epsg(4326))states.head()

Python繪制地圖神器folium的新人入門指南

我們?cè)侔咽杖氲葦?shù)據(jù)連接到上表中

abbrs = pd.read_json(open('abbrs.json'))statesmerge = states.merge(abbrs,how=’left’, left_on=’name’, right_on=’name’)statesmerge[’geometry’]=statesmerge.geometry.simplify(.05)income = pd.read_csv('income.csv', dtype={'fips':str})income[’income-2015’]=pd.to_numeric(income[’income-2015’], errors=’coerce’)income.groupby(by='state')[[’state’,’income-2015’]].median().head()statesmerge[’medianincome’]=statesmerge.merge(income.groupby(by='state')[[’state’,’income-2015’]].median(), how=’left’, left_on=’alpha-2’, right_on=’state’)[’income-2015’]statesmerge[’change’]=statesmerge.merge(income.groupby(by='state')[[’state’,’change’]].median(), how=’left’, left_on=’alpha-2’, right_on=’state’)[’change’]statesmerge.head()

Python繪制地圖神器folium的新人入門指南

最終繪制出的來(lái)的地圖如下:

Python繪制地圖神器folium的新人入門指南

除此之外,還有很多非常有趣的功能,這里就不一一列舉了,感興趣的可以參考官方的文檔。

四、競(jìng)品對(duì)比與優(yōu)劣勢(shì)

國(guó)內(nèi)的競(jìng)品為百度的 pyecharts,和 folium 一樣都可以實(shí)現(xiàn)普通的地圖繪制功能,但是具體使用還有較大的區(qū)別,具體如下表

功能 pyecharts folium 備注 世界地圖 可以 可以中文顯示 可以 部分可以 folium地圖中標(biāo)尺、文字不能正常顯示,但是嵌入地圖中的中文可以正常顯示 交互性 好 好區(qū)(縣)級(jí)地圖 可以 可以 folium需要區(qū)(縣)邊界數(shù)據(jù) 市級(jí)地圖 可以 可以 folium需要市邊界數(shù)據(jù) 收費(fèi) 自定義區(qū)域需要購(gòu)買百度ak 自定義區(qū)域功能免費(fèi)靈活性 好 好省級(jí)地圖 可以 可以 folium需要省邊界數(shù)據(jù) 美觀度 好 較好自定義區(qū)域 部分可以 可以 pyecharts需要百度 ak,folium免費(fèi) 五、參考資料

[1] https://www.zhihu.com/question/33783546

[2] https://pypi.org/project/folium/

[3] https://nbviewer.jupyter.org/github/python-visualization/folium/tree/master/examples/

到此這篇關(guān)于Python繪制地圖神器folium的文章就介紹到這了,更多相關(guān)Python繪制地圖folium內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区日韩| 亚洲国产成人精品女人| 一区二区日韩免费看| 亚洲欧美日韩国产一区二区| 欧美+日本+国产+在线a∨观看| 久久在线视频免费观看| 久久精品99久久无色码中文字幕| 国产精品99久久精品| 欧美自拍一区| 国产精品videossex久久发布 | 国产精品试看| 免费视频一区二区| 日本在线不卡视频一二三区| 日韩av午夜在线观看| 国产探花一区在线观看| 久久久国产精品网站| 麻豆mv在线观看| 成人看片网站| 免费日韩视频| 欧美私人啪啪vps| 精品视频黄色| 久久久久免费av| 一区久久精品| 偷拍亚洲精品| 福利一区和二区| 国产主播一区| 婷婷成人av| 国产一区二区三区网| 亚洲电影在线| 综合色就爱涩涩涩综合婷婷| 国产欧美成人| 日韩一区二区三区在线免费观看| 四虎884aa成人精品最新| 久久亚洲精品伦理| 国产精品一区毛片| 日韩大片在线播放| 在线观看一区| 久久精品亚洲| 欧美特黄a级高清免费大片a级| 亚洲精品视频一二三区| 国内精品美女在线观看| 黄色成人在线网址| 国产精品入口久久| 99久久久国产精品美女| 亚洲日本久久| 国产欧洲在线| 亚洲影视一区二区三区| 国产精品xxx在线观看| 欧美~级网站不卡| 欧美私人啪啪vps| 91精品国产成人观看| 日韩国产欧美在线播放| 成人午夜亚洲| 免费久久精品视频| 欧美激情国产在线| 亚洲精品在线a| 日韩深夜视频| 日韩不卡在线观看日韩不卡视频| 中文字幕在线视频久| 视频一区日韩精品| 久久青草久久| 国产精品久久乐| 亚洲福利国产| 精品一区视频| 亚洲精品少妇| 欧美日韩高清| 大香伊人久久精品一区二区| 蜜桃久久精品一区二区| 欧美日韩免费看片| 国产亚洲第一伦理第一区| 激情欧美一区二区三区| 国产精品22p| 伊人久久亚洲| 久久久久久久久久久妇女 | 在线天堂中文资源最新版| 中文字幕日韩亚洲| 久久精选视频| 精品美女视频| 日本成人精品| 在线国产一区二区| 成人国产精选| 免费一级欧美片在线观看网站| 亚洲女人av| 久久久久欧美精品| 色婷婷综合网| 久久永久免费| 国产免费播放一区二区| 亚洲天堂免费| 黄色国产精品| 日韩中文在线电影| 精品久久在线| 日本特黄久久久高潮| 亚洲深爱激情| 99精品视频在线| 精品国产免费人成网站| 欧美a在线观看| 91成人福利| 亚州精品视频| 亚洲精品在线二区| 蜜臀av性久久久久蜜臀aⅴ流畅| 国产综合色产| 久久理论电影| 久久久久免费av| 国产在线|日韩| 国产美女高潮在线| 成人影视亚洲图片在线| 美女久久精品| 久久99精品久久久野外观看| 欧美一区在线观看视频| 日本久久一区| 日韩av中文字幕一区二区三区| 日本 国产 欧美色综合| 999精品在线| 欧美亚洲国产精品久久| 涩涩av在线| 视频二区不卡| 日本黄色精品| 91欧美在线| a天堂资源在线| 成人在线视频免费看| 精品欧美日韩精品| 91日韩在线| 免费污视频在线一区| 美女网站视频一区| 日韩精品网站| 亚洲精品91| 男女男精品视频网| 蜜臀av性久久久久蜜臀aⅴ流畅| 亚洲视频二区| 欧美亚洲tv| 美女视频黄免费的久久| 欧美激情另类| 视频小说一区二区| 国产亚洲一区在线| 亚洲青青久久| 亚洲一区二区三区久久久| 日产欧产美韩系列久久99| 91精品福利观看| 久久亚洲道色| 蜜桃视频在线网站| 欧美理论视频| 蜜臀91精品一区二区三区| 日韩国产欧美在线播放| 国产精品xxx| 欧美日韩免费看片| 日韩视频一区| 婷婷久久免费视频| 麻豆91在线播放| 久久精品国产999大香线蕉| 麻豆网站免费在线观看| 久久精品在线| 一本一道久久a久久| 国产精品xxxav免费视频| 日韩高清欧美| 午夜一级在线看亚洲| 青草久久视频| 午夜影院一区| 午夜一级在线看亚洲| 久久国产生活片100| 国产成人免费| 亚洲调教视频在线观看| 中文字幕一区二区精品区| 国产精品一站二站| 日韩欧美一区免费| 一区二区三区网站| 国产伦理一区| 99精品视频在线观看免费播放| 午夜在线精品偷拍| 麻豆视频久久| 午夜日韩在线| 国产精品天堂蜜av在线播放| 麻豆视频在线观看免费网站黄| 91久久午夜| 国产福利资源一区| 久久中文字幕二区| 日韩不卡一二三区| 久久久久国产精品一区三寸| 亚洲精品四区| 日韩精品电影| 伊人www22综合色| 你懂的国产精品| 国产一区日韩一区| 久久精品 人人爱| 国产综合欧美| 久久不见久久见中文字幕免费| 91精品91| 精品国产aⅴ| 中文字幕日韩亚洲| 日本国产精品| 国产亚洲久久| 99视频一区| 国产欧美日韩在线观看视频| 国产91久久精品一区二区| 国产亚洲高清一区| 亚洲一区欧美二区| 国产精品久久乐| 玖玖玖国产精品| 日本在线精品| 欧美精品成人| 亚洲精品看片|