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 且缺少
vmin
或vmax
,則會使用穩健的分位數而不是極值來計算色帶範圍。- 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)
使用
annot
以文字表示儲存格的值sns.heatmap(glue, annot=True)
使用格式化字串控制註釋
sns.heatmap(glue, annot=True, fmt=".1f")
使用單獨的 DataFrame 作為註釋
sns.heatmap(glue, annot=glue.rank(axis="columns"))
在儲存格之間加入線條
sns.heatmap(glue, annot=True, linewidth=.5)
依名稱選擇不同的色彩對應表
sns.heatmap(glue, cmap="crest")
或傳遞色彩對應表物件
sns.heatmap(glue, cmap=sns.cubehelix_palette(as_cmap=True))
設定色彩對應表常態化 (對應到最小值和最大值的資料值)
sns.heatmap(glue, vmin=50, vmax=100)
使用
matplotlib.axes.Axes
物件上的方法來調整圖表ax = sns.heatmap(glue, annot=True) ax.set(xlabel="", ylabel="") ax.xaxis.tick_top()