- Seaborn 教程
- Seaborn - 首頁
- Seaborn - 簡介
- Seaborn - 環境搭建
- 匯入資料集和庫
- Seaborn - 圖表美化
- Seaborn - 調色盤
- Seaborn - 直方圖
- Seaborn - 核密度估計
- 視覺化成對關係
- Seaborn - 繪製分類資料
- 觀測值的分佈
- Seaborn - 統計估計
- Seaborn - 繪製寬格式資料
- 多面板分類圖
- Seaborn - 線性關係
- Seaborn - Facet Grid
- Seaborn - Pair Grid
- 函式參考
- Seaborn - 函式參考
- Seaborn 有用資源
- Seaborn - 快速指南
- Seaborn - 有用資源
- Seaborn - 討論
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()
輸出
生成的圖表附在下面。
示例 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()
輸出
示例 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()
輸出
獲得的繪圖如下所示:
示例 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()
輸出