使用 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 庫分析和可視化了地震資料集。
資料結構
網路
關係資料庫管理系統 (RDBMS)
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP