Seaborn.heatmap() 方法



Seaborn.heatmap() 方法用於繪製矩形資料,以顏色編碼矩陣的形式呈現。

讓我們首先定義熱力圖:

熱力圖是一種資料視覺化工具,它以顏色的形式顯示某種現象的強度。色調和強度屬性用於描繪繪製在熱力圖上的資料的變化。這些通常顯示所繪製現象的性質;它是在空間上聚集還是分散。

語法

以下是 seaborn.heatmap() 方法的語法:

seaborn.heatmap(data, *, vmin=None, vmax=None, cmap=None, center=None, robust=False, annot=None, fmt='.2g', annot_kws=None, linewidths=0, linecolor='white', cbar=True, cbar_kws=None, cbar_ax=None, square=False, xticklabels='auto', yticklabels='auto', mask=None, ax=None, **kwargs)

引數

下面討論 heatmap() 方法的一些引數。

序號 引數及描述
1 資料

它接收矩形資料集作為輸入。一個可以強制轉換為二維資料集的 ndarray。如果提供 Pandas DataFrame,則將使用索引和列資訊標記列和行。

2 Vmin, vmax

此可選引數接收浮點值作為輸入,這些值用作顏色對映錨點;如果沒有,則將使用資料和其他關鍵字引數來推斷它們。

3 Cmap

此可選引數接收 matplotlib 顏色或顏色列表作為輸入。它執行將資料值轉換為顏色空間的轉換。如果未指定,則預設值取決於是否設定了 center。

4 Center

接收浮點值作為輸入,並確定在繪製發散資料時顏色對映的中心值。

5 Mask

接收布林陣列或 DataFrame,是一個可選引數。如果傳遞,則在 mask 為 True 的單元格中不會顯示資料。

6 Robust

此可選引數接收布林值,如果為 True 且不存在 vmin 或 vmax,則顏色對映範圍使用穩健分位數而不是極值生成。

7 Linewidth

接收浮點值,並確定分割每個單元格的線的寬度。

8 linecolor

接收顏色作為輸入,並確定分割每個單元格的線的顏色。

9 cbar

接收布林值,並確定是否應繪製顏色條。

返回值

此方法返回帶有已繪製熱力圖的 axes 物件。讓我們在繼續開發繪圖之前載入 seaborn 庫和資料集。

載入 seaborn 庫

要載入或匯入 seaborn 庫,可以使用以下程式碼行。

Import seaborn as sns

載入資料集

在本文中,我們將使用 seaborn 庫中內建的 flights 資料集。使用以下命令載入資料集。

flights=sns.load_dataset("flights")

以下命令用於檢視資料集中前 5 行。這使我們能夠了解可以使用哪些變數來繪製圖表。

flights.head()

以下是上述程式碼的輸出。

index,year,passengers
0,1949,112
1,1949,118
2,1949,132
3,1949,129
4,1949,121

現在我們已經載入了資料集,我們將探索一些示例。

示例 1

在這個示例中,我們將瞭解如何為陣列資料繪製熱力圖。我們首先匯入 numpy 庫,然後重置種子,以便每次迭代都獲得相同的值,這使得繪製地圖更容易。

然後,我們將設定繪圖的主題,在這個示例中,主題設定為 poster。seaborn 中的 set_theme() 方法可以取 paper、notebook、talk 和 poster 值。

import numpy as np
np.random.seed(0)
sns.set_theme("poster")
#"paper", "notebook", "talk", "poster values for set_theme

然後,我們將生成範圍從 5 到 7 的隨機數並將它們儲存在矩陣中。此矩陣作為引數傳遞給 seaborn.heatmap() 方法,然後獲得範圍從 5 到 7 的隨機數的繪圖。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
flights=sns.load_dataset("flights")
flights.head()
np.random.seed(0)
sns.set_theme("poster")
data = np.random.rand(5, 7)
sns.heatmap(data)
plt.show()

輸出

生成的圖表附在下面。

seaborn heatmap method

示例 2

現在我們已經繪製了 heatmap(),我們將瞭解其一些引數的工作原理。在這種情況下,我們將使用 vmin 和 vmax 引數並將它們與資料一起傳遞給 heatmap() 方法。

Vmin 和 Vmax 是可選引數,它們接收浮點值作為輸入,這些值用作顏色對映錨點;如果沒有,則將使用資料和其他關鍵字引數來推斷它們。

程式碼和生成的繪圖如下所示。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
flights=sns.load_dataset("flights")
flights.head()
np.random.seed(0)
sns.set_theme("poster")
data = np.random.rand(5, 7)
sns.heatmap(data, vmin=0, vmax=3)
plt.show()

輸出

heatmap method

示例 3

現在我們已經看到了如何從陣列中繪製資料,我們將看到如何從資料集中繪製資料。在下面的示例中,我們使用 flights 資料集。

我們在這個資料集上使用 pivot 函式,以便以第一列是分類的其餘列是數字的方式旋轉資料集。一旦我們實現了這一點,我們將在此旋轉後的資料上繪製熱力圖。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
flights=sns.load_dataset("flights")
flights.head()
np.random.seed(0)
sns.set_theme("poster")
data = np.random.rand(5, 7)
flights = flights.pivot("month", "year", "passengers")
sns.heatmap(flights)
plt.show()

輸出

獲得的繪圖如下所示:

heatmap

示例 4

在這個示例中,我們將在特定區域或中心建立一個熱力圖。為此,我們需要將值傳遞給 heatmap 方法的 center 引數。center 引數包含在繪製發散資料時顏色對映應居中的點。

此示例中的中心是 1995 年 1 月,生成的繪圖如下所示。

import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
flights=sns.load_dataset("flights")
flights.head()
np.random.seed(0)
sns.set_theme("poster")
data = np.random.rand(5, 7)
flights = flights.pivot("month", "year", "passengers")
sns.heatmap(flights, center=flights.loc["Jan", 1955])
plt.show()

輸出

seaborn heatmap
seaborn_matrix_plots_introduction.htm
廣告
© . All rights reserved.