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

Python可視化分析全球火山分布

 更新時間:2022年01月20日 08:52:23   作者:老貢講Python  
也就在前幾天,南太平洋島國湯加發(fā)生火山噴發(fā)。所以今天小編將為大家介紹如何用Python當(dāng)中的folium模塊以及其他的可視化庫來對全球的火山情況做一個分析。需要的可以參考一下

也就在前幾天,南太平洋島國湯加發(fā)生火山噴發(fā),有專門的專家學(xué)者分析,這可能是30年來全球規(guī)模最大的一次海底火山噴發(fā),它引發(fā)的海嘯以及火山灰將對周邊的大氣、洋流、淡水、農(nóng)業(yè)以及民眾健康等都造成不同程度的影響。

今天小編就用Python當(dāng)中的folium模塊以及其他的可視化庫來對全球的火山情況做一個分析。

準(zhǔn)備工作

和以往一樣,我們先導(dǎo)入需要數(shù)據(jù)分析過程當(dāng)中需要用到的模塊并且讀取數(shù)據(jù)集,本次的數(shù)據(jù)集來自由kaggle網(wǎng)站,主要由美國著名的史密森學(xué)會整理所得

import pandas as pd
import folium.plugins as plugins
import folium
 
df_volcano = pd.read_csv("volcano.csv")
df_volcano.head()

output

數(shù)據(jù)集包含了這些個數(shù)據(jù)

df_volcano.columns

output

Index(['volcano_number', 'volcano_name', 'primary_volcano_type',
       'last_eruption_year', 'country', 'region', 'subregion', 'latitude',
       'longitude', 'elevation', 'tectonic_settings', 'evidence_category',
       'major_rock_1', 'major_rock_2', 'major_rock_3', 'major_rock_4',
       'major_rock_5', 'minor_rock_1', 'minor_rock_2', 'minor_rock_3',
       'minor_rock_4', 'minor_rock_5', 'population_within_5_km',
       'population_within_10_km', 'population_within_30_km',
       'population_within_100_km'],
      dtype='object')

全球火山帶的分布可視化

我們通過調(diào)用folium模塊來繪制一下全球各個火山的分布,代碼如下

volcano_map = folium.Map()
 
# 將每一行火山的數(shù)據(jù)添加進來
for i in range(0, df_volcano.shape[0]):
    volcano = df_volcano.iloc[i]
    folium.Marker([volcano['latitude'], volcano['longitude']], popup=volcano['volcano_name']).add_to(volcano_map)
 
volcano_map

output

上述代碼的邏輯大致來看就是先實例化一個Map()對象,然后遍歷每一行的數(shù)據(jù),主要針對的是數(shù)據(jù)集當(dāng)中的經(jīng)緯度數(shù)據(jù),并且在地圖上打上標(biāo)簽,我們點擊每一個標(biāo)簽都會自動彈出對應(yīng)的火山的名稱

當(dāng)然出來的可視化結(jié)果不怎么美觀,我們先通過簡單的直方圖來看一下全球火山的分布情況,代碼如下

fig, (ax1, ax2) = plt.subplots(1, 2, figsize=(16, 4))
 
volcano_country = pd.DataFrame(df_volcano.groupby(['country']).size()).sort_values(0, ascending=True)
volcano_country.columns = ['Count']
volcano_country.tail(10).plot(kind='barh', legend=False, ax=ax1)
ax1.set_title('Number of Volcanoes per Country')
ax1.set_ylabel('Country')
ax1.set_xlabel('Count')
 
volcano_region = pd.DataFrame(df_volcano.groupby(['region']).size()).sort_values(0, ascending=True)
volcano_region.columns = ['Count']
volcano_region.tail(10).plot(kind='barh', legend=False, ax=ax2)
ax2.set_title('Number of Volcanoes per Region')
ax2.set_ylabel('Region')
ax2.set_xlabel('Count')
 
plt.tight_layout()
plt.show()

output

可以看到火山主要集中在美國、印度尼西亞以及日本較多,而單從地域來看,南美以及日本、中國臺灣和印度尼西亞等地存在著較多的火山

全球火山帶的分布可視化優(yōu)化

接下來我們來優(yōu)化一下之前繪制的全球火山分布的地圖,調(diào)用folium模塊當(dāng)中CircleMarker方法,并且設(shè)定好標(biāo)記的顏色與大小

volcano_map = folium.Map(zoom_start=10)
groups = folium.FeatureGroup('')
 
# 將每一行火山的數(shù)據(jù)添加進來
for i in range(0, df_volcano.shape[0]):
    volcano = df_volcano.iloc[i]
    groups.add_child(folium.CircleMarker([volcano['latitude'], volcano['longitude']],
                                         popup=volcano['volcano_name'], radius=3, color='blue',
                                         fill=True, fill_color='blue',fill_opacity=0.8))
    
volcano_map.add_child(groups)
volcano_map.add_child(folium.LatLngPopup())

output

地圖可視化實戰(zhàn)

然后我們來看一下這次火山的爆發(fā)地點,湯加共和國位于西南太平洋,屬于大洋洲,具體位置是在西經(jīng)175°和南緯20°左右,

import folium.plugins as plugins
import folium
 
m = folium.Map([-21.178986, -175.198242],
               zoom_start=10,
               control_scale=True, width='80%')
 
m

output

第一個參數(shù)非常明顯代表的是經(jīng)緯度,而zoom_start參數(shù)代表的是縮放的程度,要是我們需要進一步放大繪制的圖表,可以通過調(diào)整這個參數(shù)來實現(xiàn),而width參數(shù)代表的則是最后圖表繪制出來的寬度。

在地圖上打上標(biāo)記

我們也可以在繪制出來的地圖上面打上標(biāo)記,例如畫個圓圈,代碼如下

m = folium.Map([-21.178986, -175.198242],
               zoom_start=12,
               control_scale=True, width='80%')
folium.Circle(location = [-21.177986, -175.199242], radius = 1500,
              color = "purple").add_to(m)
m

output

或者給圈出來的區(qū)域標(biāo)上顏色,代碼如下

m = folium.Map([-21.178986, -175.198242],
               zoom_start=12,
               control_scale=True, width='80%')
folium.Circle(location = [-21.177986, -175.199242], radius = 1500,
              color = "purple", fill = True, fill_color = "red").add_to(m)
m

output

以上就是Python可視化分析全球火山分布的詳細(xì)內(nèi)容,更多關(guān)于Python分析火山分布的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • Python使用execjs執(zhí)行包含中文參數(shù)的JavaScript

    Python使用execjs執(zhí)行包含中文參數(shù)的JavaScript

    爬蟲的開發(fā)過程中,往往需要對JS進行模擬,簡單或者通用的還可以在Python中模擬或者找到對應(yīng)的第三方庫,但是復(fù)雜的就可能不好實現(xiàn)了,下面這篇文章主要給大家介紹了關(guān)于Python使用execjs執(zhí)行包含中文參數(shù)的JavaScript的相關(guān)資料,需要的朋友可以參考下
    2022-03-03
  • pyCaret效率倍增開源低代碼的python機器學(xué)習(xí)工具

    pyCaret效率倍增開源低代碼的python機器學(xué)習(xí)工具

    這篇文章主要介紹了pyCaret一款可以使效率倍增的開源低代碼的python機器學(xué)習(xí)工具,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-11-11
  • python獲取linux和windows系統(tǒng)指定接口的IP地址的步驟及代碼

    python獲取linux和windows系統(tǒng)指定接口的IP地址的步驟及代碼

    這篇文章主要介紹了python獲取linux和windows系統(tǒng)指定接口的IP地址,本文分步驟通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-05-05
  • python實現(xiàn)簡單的超市商品銷售管理系統(tǒng)

    python實現(xiàn)簡單的超市商品銷售管理系統(tǒng)

    這篇文章主要為大家詳細(xì)介紹了python實現(xiàn)超市商品銷售管理系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • python 批量下載bilibili視頻的gui程序

    python 批量下載bilibili視頻的gui程序

    這篇文章主要介紹了python 批量下載bilibili視頻的gui程序,幫助大家更好的理解和使用python,感興趣的朋友可以了解下
    2020-11-11
  • Python實現(xiàn)批量下載音效素材詳解

    Python實現(xiàn)批量下載音效素材詳解

    制作視頻的時候,多少需要一些搞怪的聲音?或者奇怪的聲音?音樂等等。一個個下載多慢,我們今天就用python實現(xiàn)批量下載!需要的可以參考一下
    2022-02-02
  • 基于Python實現(xiàn)評論區(qū)抽獎功能詳解

    基于Python實現(xiàn)評論區(qū)抽獎功能詳解

    這篇文章主要為大家介紹了基于Python如何實現(xiàn)評論區(qū)抽獎的功能,文章的示例代碼講解詳細(xì),對我們學(xué)習(xí)Python有一定幫助,需要的朋友可以學(xué)習(xí)一下
    2021-12-12
  • python如何使用opencv提取光流詳解

    python如何使用opencv提取光流詳解

    這篇文章主要給大家介紹了關(guān)于python如何使用opencv提取光流的相關(guān)資料,文中通過圖文以及實例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2022-09-09
  • pandas.DataFrame選取/排除特定行的方法

    pandas.DataFrame選取/排除特定行的方法

    今天小編就為大家分享一篇pandas.DataFrame選取/排除特定行的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • python構(gòu)建深度神經(jīng)網(wǎng)絡(luò)(DNN)

    python構(gòu)建深度神經(jīng)網(wǎng)絡(luò)(DNN)

    這篇文章主要為大家詳細(xì)介紹了python構(gòu)建深度神經(jīng)網(wǎng)絡(luò)DNN,文中示例代碼介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-03-03

最新評論