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
为假或为 cbar_ax
.
可以强制为数组的2D数据集。如果提供了数据帧,索引/列信息将用于标记列和行。
值来锚定colormap,否则它们将从数据和其他关键字参数中推断出来。
从数据值到颜色空间的映射。如果未提供,则默认值将取决于 center
被设置。
打印divergant数据时颜色图居中的值。使用此参数将更改默认值 cmap
如果没有指定。
如果是真的并且 vmin
或 vmax
如果没有,则使用稳健分位数而不是极值来计算颜色映射范围。
如果为True,则在每个单元格中写入数据值。如果像这样的数组与 data
,然后用它来注释热图而不是数据。请注意,数据帧将匹配位置,而不是索引。
添加批注时要使用的字符串格式代码。
的关键字参数 matplotlib.axes.Axes.text()
什么时候? annot
是True。
将分割每个单元格的行的宽度。
将分割每个单元格的线条的颜色。
是否绘制色条。
的关键字参数 matplotlib.figure.Figure.colorbar()
.
在其中绘制颜色条的轴,否则会占用主轴的空间。
如果为真,则将轴的纵横比设置为“相等”,这样每个单元格都将是方形的。
如果为True,则打印数据帧的列名。如果为False,则不打印列名。如果类似于列表,则将这些备用标签绘制为xticklabel。如果是整数,则使用列名,但仅打印每n个标签。如果是“自动”,则尝试密集地打印不重叠的标签。
如果传递,数据将不会显示在 mask
这是真的。缺少值的单元格将被自动屏蔽。
绘制绘图的轴,否则使用当前激活的轴。
所有其他关键字参数都传递给 matplotlib.axes.Axes.pcolormesh()
.
轴对象与热图。
参见
clustermap
使用层次聚类绘制矩阵以排列行和列。
实例
绘制numpy阵列的热图:
>>> import numpy as np; np.random.seed(0)
>>> import seaborn as sns; sns.set_theme()
>>> uniform_data = np.random.rand(10, 12)
>>> ax = sns.heatmap(uniform_data)
更改颜色贴图的限制:
>>> ax = sns.heatmap(uniform_data, vmin=0, vmax=1)
用发散的颜色图绘制以0为中心的数据的热图:
>>> normal_data = np.random.randn(10, 12)
>>> ax = sns.heatmap(normal_data, center=0)
使用有意义的行和列标签打印数据帧:
>>> flights = sns.load_dataset("flights")
>>> flights = flights.pivot("month", "year", "passengers")
>>> ax = sns.heatmap(flights)
使用整数格式为每个单元格添加数值注释:
>>> ax = sns.heatmap(flights, annot=True, fmt="d")
在每个单元格之间添加行:
>>> ax = sns.heatmap(flights, linewidths=.5)
使用不同的颜色映射:
>>> ax = sns.heatmap(flights, cmap="YlGnBu")
将颜色贴图置于特定值的中心:
>>> ax = sns.heatmap(flights, center=flights.loc["Jan", 1955])
每隔列标签打印一次,不打印行标签:
>>> data = np.random.randn(50, 20)
>>> ax = sns.heatmap(data, xticklabels=2, yticklabels=False)
不要绘制色条:
>>> ax = sns.heatmap(flights, cbar=False)
对颜色栏使用不同的轴:
>>> grid_kws = {"height_ratios": (.9, .05), "hspace": .3}
>>> f, (ax, cbar_ax) = plt.subplots(2, gridspec_kw=grid_kws)
>>> ax = sns.heatmap(flights, ax=ax,
... cbar_ax=cbar_ax,
... cbar_kws={"orientation": "horizontal"})
使用遮罩仅绘制矩阵的一部分
>>> corr = np.corrcoef(np.random.randn(10, 200))
>>> mask = np.zeros_like(corr)
>>> mask[np.triu_indices_from(mask)] = True
>>> with sns.axes_style("white"):
... f, ax = plt.subplots(figsize=(7, 5))
... ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True)