如何在 seaborn 中建立三角相關熱力圖?


在本教程中,我們將學習如何在 seaborn 中建立三角相關熱力圖;顧名思義,相關性是一種衡量變數之間相關程度的指標。相關性熱力圖是一種使用不同顏色表示數值變數之間關係的圖表。這些圖表用於理解哪些變數彼此相關以及它們之間關係的強度。而熱力圖是使用不同顏色對資料進行二維圖形表示。

Seaborn 是一個用於資料視覺化的 Python 庫。它在建立統計圖表方面很有用。它建立在 matplotlib 之上,並與 Pandas 資料結構緊密整合。它提供了多個圖表來表示資料。藉助 Pandas,我們可以建立吸引人的圖表。在本教程中,我們將說明三個建立三角熱力圖的示例。最終,我們將學習使用 Seaborn 庫建立令人驚歎且資訊豐富的熱力圖。

語法

這是建立三角相關熱力圖的語法。

sns.heatmap(df.corr(),annot=True,fmt=".2f,mask=np.triu(np.ones_like(df.corr(),dtype=bool)))

在此語法中,我們使用 sns.heatmap() 建立了一個熱力圖。然後,我們使用 'df.corr()' 將 DataFrame 'df' 的相關矩陣傳遞進去。我們還設定 'annot=True' 以在熱力圖上顯示相關值,'fmt=".2f"' 將值格式化為小數點後兩位,以及 'mask=np.triu(np.ones_like(df.corr(), dtype=bool))' 來掩蓋熱力圖的上三角部分。這使得熱力圖呈三角形,只顯示錶示唯一相關性的下三角部分。

示例 1

這是一個使用 'tips' 作為資料集的示例。它包含有關餐廳服務員收到的小費的資訊。它包括諸如總賬單、用餐人數和小費金額等變數。接下來,我們使用 Seaborn 的 'load_dataset()' 函式載入 Tips 資料集,並使用資料集上的 'corr()' 方法建立相關矩陣。然後,我們使用 Seaborn 的 'heatmap()' 函式建立了一個三角相關熱力圖。最後,我們設定了屬性並將地圖的顏色設定為 'spring',並使用 'plt.show()' 函式繪製它。生成的熱力圖顯示了總賬單、小費和人數變數之間的相關性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
tips = sns.load_dataset("tips")
corr = tips.corr()
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='spring', annot=True)
plt.show()

輸出

示例 2

在這個例子中,我們使用的是 'titanic' 資料集,這是一個用於機器學習和統計的資料集,其中包含有關泰坦尼克號乘客的資訊,包括他們的年齡、性別、票價等級以及他們是否倖存。首先,我們使用 Seaborn 的 'load_dataset()' 函式載入 Titanic 資料集,並使用資料集上的 'corr()' 方法建立相關矩陣。然後,我們使用 Seaborn 的 'heatmap()' 函式建立一個三角相關熱力圖並設定其屬性。最後,我們使用 Matplotlib 的 'show()' 函式顯示它。生成的熱力圖顯示了年齡、票價和等級變數之間的相關性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
titanic = sns.load_dataset("titanic")
corr = titanic.corr()
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='copper', annot=True)
plt.show()

輸出

示例 3

在這個例子中,我們使用的是 Iris 資料集,這是另一個用於機器學習和統計的經典資料集。它包含三種鳶尾花(Setosa、Versicolor 和 Virginica)的花萼長度、花萼寬度、花瓣長度和花瓣寬度的測量值。首先,我們使用 'Seaborn's load_dataset()' 函式載入 Iris 資料集,並使用資料集上的 'corr()' 方法建立相關矩陣。然後,我們使用 Seaborn 的 'heatmap()' 函式建立了一個三角相關熱力圖,並使用 Matplotlib 的 'show()' 函式顯示它。生成的熱力圖顯示了花萼長度、花萼寬度、花瓣長度和花瓣寬度變數之間的相關性。

import seaborn as sns
import numpy as np
from matplotlib import pyplot as plt
import seaborn as sns
# Load the Iris dataset
iris = sns.load_dataset("iris")
# Create a correlation matrix
corr = iris.corr()
# Create a heatmap using Seaborn
mask = np.zeros_like(corr, dtype=np.bool_)
mask[np.triu_indices_from(mask)] = True
sns.heatmap(corr, mask=mask, cmap='coolwarm', annot=True)
plt.show()

輸出

我們瞭解到,Seaborn 是 Python 中一個強大的資料視覺化庫,它提供了各種函式來建立不同型別的視覺化,包括熱力圖,熱力圖是視覺化資料集變數之間相關性的有用方法,尤其是在變數數量較多時。此外,Seaborn 的 'heatmap()' 函式允許我們自定義調色盤並在熱力圖上顯示相關係數,分別使用 cmap 和 annot 引數。它還提供了一些內建資料集來練習資料視覺化,例如 Iris 資料集、Titanic 資料集和 Tips 資料集。使用 Seaborn 建立熱力圖對於必須探索和理解大型資料集中的相關性的資料科學家和分析師非常有用。藉助這些熱力圖,資料科學家和分析師可以深入瞭解他們的資料,並根據他們的發現做出明智的決策。

更新於: 2023-05-11

1K+ 次瀏覽

開啟您的 職業生涯

透過完成課程獲得認證

立即開始
廣告