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 且
vmin
或vmax
缺失,则颜色图范围将使用稳健分位数计算,而不是使用极值。- 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)
使用
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()