色综合图-色综合图片-色综合图片二区150p-色综合图区-玖玖国产精品视频-玖玖香蕉视频

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

python-地圖可視化組件folium的操作

瀏覽:3日期:2022-07-02 11:59:23

folium是python的一個(gè)用來(lái)繪制地圖,并在地圖上打點(diǎn),畫圈,做顏色標(biāo)記的工具類。簡(jiǎn)單易學(xué),和pandas可以很好的融合,是居家必備良品。

一 基本功能演示

import foliumimport webbrowserm=folium.Map(location=[40.009867,116.485994],zoom_start=10) # 繪制地圖,確定聚焦點(diǎn)folium.Marker([40.2,116.7],popup=’<b>浮標(biāo)上面的那個(gè)文字</b>’).add_to(m) # 定一個(gè)點(diǎn),放到地圖m上folium.Marker([40.22,116.72],popup=’<b>浮標(biāo)上面的那個(gè)文字</b>’,icon=folium.Icon(color=’red’)).add_to(m)# 把浮標(biāo)變成紅色folium.Marker([40.24,116.74],popup=’<b>浮標(biāo)上面的那個(gè)文字</b>’,icon=folium.Icon(color=’green’,icon=’info-sign’)).add_to(m)# 浮標(biāo)改圖樣#標(biāo)記一個(gè)空心的圈folium.Circle( location=[40.2,117.7], radius=10000, color=’crimson’, popup=’popup’, fill=False).add_to(m)#標(biāo)記一個(gè)實(shí)心圓folium.CircleMarker( location=[39.2,117.7], radius=100, popup=’popup’, color=’#DC143C’,#圈的顏色 fill=True, fill_color=’#6495ED’ #填充顏色).add_to(m)m.save(’f1.html’)webbrowser.open(’f1.html’)

另外,folium還支持交互,比如鼠標(biāo)點(diǎn)擊的地方顯示經(jīng)緯度,或者直接在點(diǎn)擊過的地方標(biāo)記一個(gè)icon

import foliumimport webbrowser as wb# 地圖上懸浮顯示經(jīng)緯度m = folium.Map( location=[36.68159, 117.103565], zoom_start=10)m.add_child(folium.LatLngPopup())# 手動(dòng)打點(diǎn)功能m.add_child( folium.ClickForMarker(popup=’Waypoint’))m.save(’f2.html’)wb.open(’f2.html’)

二 使用folium繪制散點(diǎn)圖,熱力圖

熱力圖 ,現(xiàn)實(shí)中數(shù)據(jù)的量級(jí)不好控制,有時(shí)候用folium畫出的熱力圖,效果往往不是太好。

import numpy as npimport pandas as pdimport seaborn as snsimport foliumimport webbrowserfrom folium.plugins import HeatMap#導(dǎo)入數(shù)據(jù)集:posi = pd.read_excel('D:/Python/File/Cities2015.xlsx')posi = posi.dropna()#生成所需要的數(shù)組格式數(shù)據(jù):lat = np.array(posi['lat'][0:len(posi)])lon = np.array(posi['lon'][0:len(posi)])pop = np.array(posi['pop'][0:len(posi)],dtype=float)gdp = np.array(posi['GDP'][0:len(posi)],dtype=float)data1 = [[lat[i],lon[i],pop[i]] for i in range(len(posi))]#創(chuàng)建以高德地圖為底圖的密度圖:map_osm = folium.Map( location=[35,110], zoom_start=5, tiles=’http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=8&x={x}&y={y}&z={z}’, attr='&copy; <a rel='external nofollow' >高德地圖</a>' )#創(chuàng)建以騰訊地圖為底圖的密度圖:map_osm = folium.Map( location=[35,110], zoom_start=5, tiles=’http://rt{s}.map.gtimg.com/realtimerender?z={z}&x={x}&y={y}&type=vector&style=0’, attr='&copy; <a rel='external nofollow' >騰訊地圖</a>' )#生成交互式地圖:HeatMap(data1).add_to(map_osm)file_path = r'D:/Python/Image/People.html'map_osm.save(file_path)webbrowser.open(file_path)

folium的散點(diǎn)圖更適合作展示,考慮到加載的順暢性,不建議讀取太大的數(shù)據(jù),另外其組件可能會(huì)讀一些外網(wǎng)的js,如果所在的網(wǎng)絡(luò)不能訪問google可能效果無(wú)法展示。解決辦法是把里面的js地址替換成國(guó)內(nèi)的鏡像。

import pandas as pdimport numpy as npimport osimport foliumfrom folium import pluginsimport webbrowserimport geopandas as gp#數(shù)據(jù)導(dǎo)入:full = pd.read_excel('D:/Python/File/Cities2015.xlsx')full = full.dropna()#創(chuàng)建地圖對(duì)象:schools_map = folium.Map(location=[full[’lat’].mean(), full[’lon’].mean()], zoom_start=10)marker_cluster = plugins.MarkerCluster().add_to(schools_map) #標(biāo)注數(shù)據(jù)點(diǎn):for name,row in full.iterrows(): folium.Marker([row['lat'], row['lon']], popup='{0}:{1}'.format(row['cities'], row['GDP'])).add_to(marker_cluster) #逐行讀取經(jīng)緯度,數(shù)值,并且打點(diǎn)#folium.RegularPolygonMarker([row['lat'], row['lon']], popup='{0}:{1}'.format(row['cities'], row['GDP']),number_of_sides=10,radius=5).add_to(marker_cluster)schools_map.save(’schools_map.html’) #保存到本地webbrowser.open(’schools_map.html’) #在瀏覽器中打開

除此之外folium還可以繪制填充圖,填充圖比較素顏,如下圖

python-地圖可視化組件folium的操作

這里有一些官方示例,感興趣可以看下 :

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

補(bǔ)充:Python遙感可視化 — folium模塊展示熱力圖

“本節(jié)通過folium模塊來(lái)繪制全國(guó)PM2.5熱力分布圖,并生成對(duì)應(yīng)的html文件。”

今天的遙感之美—歌曲《歐若拉》中的阿拉斯加。阿拉斯加州位于北美大陸西北端,東與加拿大接壤,另三面環(huán)北冰洋、白令海和北太平洋。衛(wèi)星俯瞰神秘北極圈,阿拉斯加的山巔,誰(shuí)的臉出現(xiàn)海角的天邊(盜用歌詞捂臉)。

python-地圖可視化組件folium的操作

哥倫比亞冰川位于美國(guó)阿拉斯加州,從海拔3,050米的冰原開始下降,沿著楚加奇山脈的側(cè)翼下降,進(jìn)入一個(gè)狹窄的入口,通往阿拉斯加?xùn)|南部的威廉王子灣,它是世界上變化最快的冰川之一。科學(xué)家使用Landsat 4,5,7和8跟蹤哥倫比亞冰川的變化已超過30年。哥倫比亞冰川是一個(gè)大型的潮水冰川,最終流入大海。

由Landsat系列衛(wèi)星捕獲的假彩色圖像顯示了自1986年以來(lái)冰川及其周圍景觀的變化。圖像由以下傳感器收集—專題制圖儀(TM),增強(qiáng)型專題制圖儀(ETM +)和陸地成像儀(OLI)—來(lái)自四種不同的Landsat衛(wèi)星(4,5,7和8)。

Landsat圖像結(jié)合了電磁波譜的短波紅外,近紅外和綠光波段。通過這種波長(zhǎng)組合,雪和冰呈現(xiàn)明亮的青色,植被為綠色,云為白色或淺橙色,水體為深藍(lán)色。暴露的基巖呈棕色,而冰川表面的巖石碎片呈灰色。

在過去三十年里,終點(diǎn)站向北退縮了20公里。在某些年份,終點(diǎn)站退縮了一公里以上,但速度不均勻。例如,終點(diǎn)站的運(yùn)動(dòng)在2000年至2006年之間停滯不前,因?yàn)榇笈{塔克峰和卡丁峰(直接向西)限制了冰川的運(yùn)動(dòng)并將冰塊固定。自20世紀(jì)80年代以來(lái),冰川已經(jīng)失去了其總厚度和體積的一半左右(譯自Landsat官網(wǎng))。

folium是Python中一個(gè)繪制地圖的模塊,并可以在地圖(底圖)上打點(diǎn),畫圈,做顏色標(biāo)記的工具類。簡(jiǎn)單易學(xué),和pandas可以很好的融合,是地圖可視化的一款神器。

在命令行中直接在線安裝即可,快速、簡(jiǎn)潔、方便、高效。

pip install folium

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

本節(jié)先來(lái)展示一下它的簡(jiǎn)單應(yīng)用,主要以2018年1月全國(guó)1000多個(gè)PM2.5地面觀測(cè)站點(diǎn)為例,將這些數(shù)據(jù)以熱力圖(heat map)的形式展現(xiàn)給大家,并生成相應(yīng)的html文件。

代碼實(shí)現(xiàn):

# _*_ coding: utf-8 _*___author__ = ’xbr’__date__ = ’2019/1/9 15:47’ import numpy as npimport pandas as pdimport foliumimport webbrowserfrom folium.plugins import HeatMap # 讀取csv文件,以Dataframe形式保存df = pd.read_csv(r'D:dataPM25-20180101.csv')# 獲取數(shù)據(jù)個(gè)數(shù)num = df.shape[0]# 獲取緯度lat = np.array(df['lat'][0:num])# 獲取經(jīng)度lon = np.array(df['lon'][0:num])# 獲取PM2.5,轉(zhuǎn)化為numpy浮點(diǎn)型pm25 = np.array(df['PM25'][0:num], dtype=float)# 將數(shù)據(jù)制作成[lats, lons, weights]的形式data1 = [[lat[i], lon[i], pm25[i]] for i in range(num)]# 繪制Map,中心經(jīng)緯度[32, 120],開始縮放程度是5倍map_osm = folium.Map(location=[32, 120], zoom_start=5)# 將熱力圖添加到前面建立的map里HeatMap(data1).add_to(map_osm) file_path = r'D:AirQualityMap.html'# 保存為html文件map_osm.save(file_path)# 默認(rèn)瀏覽器打開webbrowser.open(file_path)

結(jié)果圖:

python-地圖可視化組件folium的操作

對(duì)結(jié)果圖局部放大:

python-地圖可視化組件folium的操作

對(duì)結(jié)果圖局部放大:

python-地圖可視化組件folium的操作

縮小后全景圖:

python-地圖可視化組件folium的操作

以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。

標(biāo)簽: Python 編程
相關(guān)文章:
主站蜘蛛池模板: 国产精品大片天天看片 | 国产精品制服 | 日本一区二区三区在线 视频 | 欧美人性影片免费看 | 日韩一级欧美一级 | 亚洲 自拍 欧美 综合 | 欧美午夜激情影院 | 成人五级毛片免费播放 | 亚洲一级毛片在线播放 | 日本三片在在线播放 | 国产妇乱子伦视频免费 | 综合久久久 | 毛片手机在线观看 | 久久性生大片免费观看性 | 国产情侣普通话刺激对白 | 黄色一级片网址 | 毛片免费看网站 | 美国一级毛片片aa久久综合 | 免费一级特黄欧美大片久久网 | 亚洲国产欧美在线不卡中文 | 99久久国产综合精品网成人影院 | 亚洲国产精品久久卡一 | 日本中文字幕不卡免费视频 | 最近手机高清中文字幕大全7 | 日韩中文字幕在线观看视频 | 欧美成人在线免费观看 | 中文 日本 免费 高清 | 一级做性色a爰片久久毛片免费 | 日产国产精品亚洲系列 | 手机看片1024欧美日韩你懂的 | 最新久久免费视频 | 男女牲高爱潮免费视频男女 | 女人张开腿让男人桶免费最新 | 91精品国产一区二区三区左线 | 亚洲色在线视频 | 美女被靠视频免费网站不需要会员 | 欧美一级片在线观看 | 91高端极品外围在线观看 | 97视频在线播放 | 欧美大片一级毛片 | 亚洲一区二区三区精品视频 |