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)#

將矩形資料繪製為顏色編碼的矩陣。

這是一個軸層級的函數,如果沒有將任何軸提供給 ax 引數,則會將熱圖繪製到目前作用中的軸中。除非 cbar 為 False 或將單獨的軸提供給 cbar_ax,否則會佔用此軸空間的一部分並用於繪製色帶。

參數:
data矩形資料集

可以強制轉換為 ndarray 的 2D 資料集。如果提供 Pandas DataFrame,則索引/欄資訊將用於標記欄和列。

vmin, vmax浮點數,可選

用於錨定色帶的值,否則會從資料和其他關鍵字引數中推斷出這些值。

cmapmatplotlib 色帶名稱或物件,或顏色清單,可選

從資料值到色彩空間的對應。如果未提供,則預設值將取決於是否設定了 center

center浮點數,可選

繪製發散資料時,色帶置中的值。如果未指定,則使用此參數會變更預設的 cmap

robust布林值,可選

如果為 True 且缺少 vminvmax,則會使用穩健的分位數而不是極值來計算色帶範圍。

annot布林值或矩形資料集,可選

如果為 True,則在每個儲存格中寫入資料值。如果形狀與 data 相同的類陣列,則使用此值來註釋熱圖而不是資料。請注意,DataFrames 將在位置上匹配,而不是在索引上匹配。

fmt字串,可選

新增註釋時要使用的字串格式設定碼。

annot_kws鍵值對應的字典,可選

annot 為 True 時,用於 matplotlib.axes.Axes.text() 的關鍵字引數。

linewidths浮點數,可選

將分隔每個儲存格的線條寬度。

linecolor顏色,可選

將分隔每個儲存格的線條顏色。

cbar布林值,可選

是否繪製顏色條。

cbar_kws鍵值對應的字典,可選

用於 matplotlib.figure.Figure.colorbar() 的關鍵字引數。

cbar_axmatplotlib 軸,可選

要在其中繪製顏色條的軸,否則會從主要軸佔用空間。

square布林值,可選

如果為 True,則將軸的長寬比設定為「equal」,這樣每個儲存格都將為方形。

xticklabels, yticklabels「auto」、布林值、類清單或整數,可選

如果為 True,則繪製資料框架的欄名稱。如果為 False,則不繪製欄名稱。如果為類清單,則將這些替代標籤繪製為 xticklabels。如果為整數,則使用欄名稱,但只繪製每 n 個標籤。如果為「auto」,則嘗試密集繪製不重疊的標籤。

mask布林值陣列或 DataFrame,可選

如果已傳遞,則不會在 mask 為 True 的儲存格中顯示資料。具有遺漏值的儲存格會自動遮罩。

axmatplotlib 軸,可選

要在其中繪製圖表的軸,否則使用目前作用中的軸。

kwargs其他關鍵字參數

所有其他關鍵字參數都會傳遞給 matplotlib.axes.Axes.pcolormesh()

回傳值:
axmatplotlib 軸 (Axes)

帶有熱圖的軸物件。

另請參閱

clustermap

使用階層式分群來排列行和列,繪製矩陣。

範例

傳遞 DataFrame 以繪圖,並以索引作為行/列標籤

glue = sns.load_dataset("glue").pivot(index="Model", columns="Task", values="Score")
sns.heatmap(glue)
../_images/heatmap_1_0.png

使用 annot 以文字表示儲存格的值

sns.heatmap(glue, annot=True)
../_images/heatmap_3_0.png

使用格式化字串控制註釋

sns.heatmap(glue, annot=True, fmt=".1f")
../_images/heatmap_5_0.png

使用單獨的 DataFrame 作為註釋

sns.heatmap(glue, annot=glue.rank(axis="columns"))
../_images/heatmap_7_0.png

在儲存格之間加入線條

sns.heatmap(glue, annot=True, linewidth=.5)
../_images/heatmap_9_0.png

依名稱選擇不同的色彩對應表

sns.heatmap(glue, cmap="crest")
../_images/heatmap_11_0.png

或傳遞色彩對應表物件

sns.heatmap(glue, cmap=sns.cubehelix_palette(as_cmap=True))
../_images/heatmap_13_0.png

設定色彩對應表常態化 (對應到最小值和最大值的資料值)

sns.heatmap(glue, vmin=50, vmax=100)
../_images/heatmap_15_0.png

使用 matplotlib.axes.Axes 物件上的方法來調整圖表

ax = sns.heatmap(glue, annot=True)
ax.set(xlabel="", ylabel="")
ax.xaxis.tick_top()
../_images/heatmap_17_0.png