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

将矩形数据绘制为颜色编码矩阵。

这是一个 Axes 级别的函数,如果未向 ax 参数提供 Axes,它将绘制热图到当前活动的 Axes 中。该 Axes 空间的一部分将被占用并用于绘制颜色图,除非 cbar 为 False 或向 cbar_ax 提供单独的 Axes。

参数:
data矩形数据集

可以强制转换为 ndarray 的二维数据集。如果提供 Pandas DataFrame,则索引/列信息将用于标记列和行。

vmin, vmax浮点数,可选

用于固定颜色图的值,否则它们将从数据和其他关键字参数中推断。

cmapmatplotlib 颜色图名称或对象,或颜色列表,可选

从数据值到颜色空间的映射。如果没有提供,默认值将取决于 center 是否设置。

center浮点数,可选

绘制发散数据时中心化颜色图的值。使用此参数将在未指定颜色图时更改默认 cmap

robust布尔值,可选

如果为 True 且 vminvmax 缺失,则颜色图范围将使用稳健分位数计算,而不是使用极值。

annot布尔值或矩形数据集,可选

如果为 True,则在每个单元格中写入数据值。如果为与 data 形状相同的类数组,则使用它来注释热图而不是数据。请注意,DataFrame 将根据位置匹配,而不是根据索引匹配。

fmt字符串,可选

在添加注释时使用的字符串格式代码。

annot_kws键值映射字典,可选

annot 为 True 时,matplotlib.axes.Axes.text() 的关键字参数。

linewidths浮点数,可选

将划分每个单元格的线条的宽度。

linecolor颜色,可选

将划分每个单元格的线条的颜色。

cbar布尔值,可选

是否绘制颜色条。

cbar_kws键值映射字典,可选

用于 matplotlib.figure.Figure.colorbar() 的关键字参数。

cbar_axmatplotlib Axes,可选

用于绘制颜色条的 Axes,否则将从主 Axes 中获取空间。

square布尔值,可选

如果为 True,则将 Axes 纵横比设置为 “equal”,以便每个单元格都呈方形。

xticklabels, yticklabels“auto”,布尔值,类列表或整数,可选

如果为 True,则绘制 DataFrame 的列名。如果为 False,则不绘制列名。如果为类列表,则绘制这些备用标签作为 xticklabels。如果为整数,则使用列名,但仅绘制每隔 n 个标签。如果为 “auto”,则尝试密集绘制不重叠的标签。

mask布尔值数组或 DataFrame,可选

如果传递,则不会在 mask 为 True 的单元格中显示数据。具有缺失值的单元格将自动屏蔽。

axmatplotlib Axes,可选

用于绘制图形的 Axes,否则使用当前活动的 Axes。

kwargs其他关键字参数

所有其他关键字参数将传递给 matplotlib.axes.Axes.pcolormesh()

返回值:
axmatplotlib Axes

具有热图的 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