欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

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

 更新時間:2020年12月14日 08:46:41   作者:飲馬長城窟  
這篇文章主要介紹了python-地圖可視化組件folium的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

folium是python的一個用來繪制地圖,并在地圖上打點,畫圈,做顏色標記的工具類。簡單易學,和pandas可以很好的融合,是居家必備良品。

一 基本功能演示

import folium
import webbrowser
m=folium.Map(location=[40.009867,116.485994],zoom_start=10) # 繪制地圖,確定聚焦點
folium.Marker([40.2,116.7],popup='<b>浮標上面的那個文字</b>').add_to(m) # 定一個點,放到地圖m上
folium.Marker([40.22,116.72],popup='<b>浮標上面的那個文字</b>',icon=folium.Icon(color='red')).add_to(m)
# 把浮標變成紅色
folium.Marker([40.24,116.74],popup='<b>浮標上面的那個文字</b>',icon=folium.Icon(color='green',icon='info-sign')).add_to(m)
# 浮標改圖樣
#標記一個空心的圈
folium.Circle(
 location=[40.2,117.7],
 radius=10000,
 color='crimson',
 popup='popup',
 fill=False
).add_to(m)
#標記一個實心圓
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還支持交互,比如鼠標點擊的地方顯示經(jīng)緯度,或者直接在點擊過的地方標記一個icon

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

二 使用folium繪制散點圖,熱力圖

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

import numpy as np
import pandas as pd
import seaborn as sns
import folium
import webbrowser
from folium.plugins import HeatMap
#導入數(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的散點圖更適合作展示,考慮到加載的順暢性,不建議讀取太大的數(shù)據(jù),另外其組件可能會讀一些外網(wǎng)的js,如果所在的網(wǎng)絡不能訪問google可能效果無法展示。解決辦法是把里面的js地址替換成國內(nèi)的鏡像。

import pandas as pd
import numpy as np
import os
import folium
from folium import plugins
import webbrowser
import geopandas as gp
#數(shù)據(jù)導入:
full = pd.read_excel("D:/Python/File/Cities2015.xlsx")
full = full.dropna()
#創(chuàng)建地圖對象:
schools_map = folium.Map(location=[full['lat'].mean(), full['lon'].mean()], zoom_start=10)
marker_cluster = plugins.MarkerCluster().add_to(schools_map) 
#標注數(shù)據(jù)點:
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ù)值,并且打點
#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還可以繪制填充圖,填充圖比較素顏,如下圖

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

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

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

“本節(jié)通過folium模塊來繪制全國PM2.5熱力分布圖,并生成對應的html文件。”

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

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

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

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

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

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

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

pip install folium

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

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

代碼實現(xiàn):

# _*_ coding: utf-8 _*_
__author__ = 'xbr'
__date__ = '2019/1/9 15:47'
 
import numpy as np
import pandas as pd
import folium
import webbrowser
from folium.plugins import HeatMap
 
 
# 讀取csv文件,以Dataframe形式保存
df = pd.read_csv(r"D:\data\PM25-20180101.csv")
# 獲取數(shù)據(jù)個數(shù)
num = df.shape[0]
# 獲取緯度
lat = np.array(df["lat"][0:num])
# 獲取經(jīng)度
lon = np.array(df["lon"][0:num])
# 獲取PM2.5,轉化為numpy浮點型
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)
# 默認瀏覽器打開
webbrowser.open(file_path)

結果圖:

對結果圖局部放大:

對結果圖局部放大:

縮小后全景圖:

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。如有錯誤或未考慮完全的地方,望不吝賜教。

相關文章

  • Django開發(fā)中復選框用法示例

    Django開發(fā)中復選框用法示例

    這篇文章主要介紹了Django開發(fā)中復選框用法,結合實例形式分析了Django基于ajax的復選框遍歷、提交及后臺數(shù)據(jù)庫查詢等相關操作技巧,需要的朋友可以參考下
    2018-03-03
  • 在Python中操作字符串之replace()方法的使用

    在Python中操作字符串之replace()方法的使用

    這篇文章主要介紹了在Python中操作字符串之replace()方法的使用,是Python入門中的基礎知識,需要的朋友可以參考下
    2015-05-05
  • python字典的元素訪問實例詳解

    python字典的元素訪問實例詳解

    在本篇文章里小編給大家整理的是一篇關于python字典的元素訪問實例詳解內(nèi)容,有需要的朋友們可以跟著學習參考下。
    2021-07-07
  • python如何制作英文字典

    python如何制作英文字典

    這篇文章主要為大家詳細介紹了python如何制作英文字典,添加單詞的意思,查詢,退出,建立單詞文件,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-06-06
  • python中的unittest框架實例詳解

    python中的unittest框架實例詳解

    在本篇文章里小編給大家分享的是一篇關于python中的unittest框架實例詳解內(nèi)容,對此有興趣的朋友們可以學習下。
    2021-02-02
  • 詳細聊聊為什么Python中0.2+0.1不等于0.3

    詳細聊聊為什么Python中0.2+0.1不等于0.3

    最近在學習過程中發(fā)現(xiàn)在計算機JS時發(fā)現(xiàn)了一個非常有意思事,0.1+0.2的結果不是0.3,而是0.30000000000000004,下面這篇文章主要給大家介紹了關于為什么Python中0.2+0.1不等于0.3的相關資料,需要的朋友可以參考下
    2022-12-12
  • 導入tensorflow:ImportError: libcublas.so.9.0 報錯

    導入tensorflow:ImportError: libcublas.so.9.0 報錯

    這篇文章主要介紹了導入tensorflow:ImportError: libcublas.so.9.0 報錯,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-01-01
  • 將python代碼和注釋分離的方法

    將python代碼和注釋分離的方法

    下面小編就為大家分享一篇將python代碼和注釋分離的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python 如何調用 dubbo 接口

    python 如何調用 dubbo 接口

    這篇文章主要介紹了python 如何調用 dubbo 接口,幫助大家更好的理解和學習python,感興趣的朋友可以了解下
    2020-09-09
  • Python中的數(shù)據(jù)標準化與反標準化全面指南

    Python中的數(shù)據(jù)標準化與反標準化全面指南

    在數(shù)據(jù)處理和機器學習中,數(shù)據(jù)標準化是一項至關重要的預處理步驟,標準化能夠將不同尺度和范圍的數(shù)據(jù)轉換為相同的標準,有助于提高模型的性能和穩(wěn)定性,Python提供了多種庫和函數(shù)來執(zhí)行數(shù)據(jù)標準化和反標準化,如Scikit-learn和TensorFlow
    2024-01-01

最新評論