使用 Matplotlib 在 Python 中分析和視覺化地震資料


使用 Python 的 matplotlib 庫分析地震資料可以提供關於地震頻率、震級和位置的寶貴見解,這有助於預測和減輕其影響。在本文中,我們將探討如何使用 Python 和 Matplotlib(一個流行的資料視覺化庫)來分析和視覺化地震資料。我們將逐步向您展示如何將地震資料載入到 Python 中,清理和預處理資料,以及建立視覺化效果以更好地理解資料中的模式和趨勢。

介紹

與資料的文字描述相比,人類大腦更容易理解資料的視覺表示。當我們看到圖片時,更容易理解它。資料集是關於特定主題的原始資訊集合。在本文中,我們有一個地震資料集,它以 CSV 檔案的形式存在。我們需要分析和視覺化資料集以瞭解資料集中的趨勢和模式,以便我們可以預測未來可能發生的情況。例如,在本文中,我們將使用地震資料集,使用 matplotlib,我們將分析和視覺化資料以瞭解過去幾年地震的強度模式,然後我們可以預測未來地震的強度。

為了視覺化和分析資料集,我們使用一個名為 Matplotlib 的 Python 庫。我們將詳細討論什麼是 matplotlib 以及如何使用它來分析和視覺化資料集。

資料視覺化

圖形為檢查資料提供了良好的工具,這對於呈現結果至關重要。資料視覺化這個術語比較新。它反映了一個概念,即它不僅僅是事實的圖形表示(而不是使用文字形式)。

這對於識別和理解資料集,以及對趨勢、錯誤資料、異常值等進行分類特別有用。只需少量主題專業知識,資料視覺化就可以使用繪圖和圖表來傳達和說明重要的聯絡。

Matplotlib

在 Python 中,有一個名為 Matplotlib 的包,用於資料視覺化,並且基於 Numpy 陣列。它對於圖形使用者介面、shell 指令碼、web 應用程式等非常有用。

2002 年,John D. Hunter 最初開發了 matplotlib。它是在類似 BSD 的許可下提供的,並且有一個活躍的開發人員社群在開發它。2003 年釋出了該程式的第一個版本,而今天,2019 年 7 月 1 日,釋出了該程式的最新版本 3.1.1。

隨著 Matplotlib 1.2 版的釋出,增加了對 Python3 的支援。當前也是最後一個與 Python 2.6 相容的 Matplotlib 版本是 1.4 版。

資料集

本文中使用的資料集取自 CORGIS 資料集專案,檔名是 earthquake.csv。

我們將在接下來的程式碼中分析和準備資料集。

使用 matplotlib 分析和視覺化地震資料

現在我們將看到如何使用 Python 和 matplotlib 分析和視覺化地震資料。

匯入庫和資料集

我們將首先匯入所有重要的庫。

Pandas − 它有助於分析資料集並將資料幀儲存為二維陣列格式。

Seaborn/Matplotlib − 這兩者都用於視覺化資料

import pandas as pdd
import numpy as npp
import matplotlib.pyplot as pltt
import seaborn as sbb

現在讓我們載入資料集。我們將資料集載入到 Python 資料幀中,以便可以輕鬆訪問它。

df1 = pdd.read_csv('C:/Users/Tutorialspoint/Downloads/earthquakes.csv')
df1.shape

輸出

(8394,19)

我們將檢視列中的資料,以瞭解資料中存在多少空值以及列中資料的型別。

df1.info()

輸出

為了瞭解資料集的分佈情況,我們將檢視資料集的一些統計量。

df1.describe()

輸出

從上述資料集描述中,我們可以得出結論,地震發生的最大震級為 7.7,最大深度為 622。

探索性資料分析

此分析用於使用圖表和圖表來探索資料中的趨勢和模式。

pltt.figure(figsize=(10, 5))
x1 = df1.groupby('time.year').mean()['location.depth']
x1.plot.bar()
pltt.show()

輸出

從上面的條形圖中,我們可以注意到,2016 年以後地震次數增加,2017 年以後連續三年逐漸減少,然後增加,2021 年以後再次減少。

fig1 = pltt.figure()
ax1 = fig1.add_axes([.1, .1, 2, 1])
ax1.plot(df1['impact.magnitude'])

輸出

pltt.figure(figsize=(10, 5))
sbb.lineplot(data=df1,
   x='time.month',
   y='impact.magnitude')
pltt.show()

輸出

我們可以看到,地震的震級每個月都在減小。

pltt.subplots(figsize=(15, 5))
 
pltt.subplot(1, 2, 1)
sbb.distplot(df1['location.depth'])
 
pltt.subplot(1, 2, 2)
sbb.boxplot(df1['location.depth'])
pltt.show()

輸出

從分佈圖可以看出,存在多個異常值,這可以使用箱線圖來驗證。然而,最重要的收穫是,地震發生深度的分佈存在左偏。

pltt.subplots(figsize=(15, 5))
 
pltt.subplot(1, 2, 1)
sbb.distplot(df1['impact.magnitude'])
 
pltt.subplot(1, 2, 2)
sbb.boxplot(df1['impact.magnitude'])
 
pltt.show()

輸出

pltt.figure(figsize=(20, 10))
sbb.scatterplot(data=df1,
   x='location.latitude',
   y='location.longitude',
   hue='impact.magnitude')
pltt.show()

輸出

現在,我們將檢視資料的散點圖:

import plotly.express as pxx
import pandas as pdd
 
fig_w = pxx.scatter_geo(df1, lat='location.latitude',
   lon='location.longitude',
   color="impact.magnitude",
   scope='usa')
fig_w.show()

輸出

從上圖可以看出,美國哪些地區更容易發生地震。

結論

在本文中,我們學習了 Python 的 matplotlib 庫以及如何使用它。我們還使用 matplotlib 庫分析和可視化了地震資料集。

更新於:2023年6月1日

594 次瀏覽

啟動您的 職業生涯

完成課程獲得認證

開始
廣告
© . All rights reserved.