seaborn.heatmap

优质
小牛编辑
137浏览
2023-12-01
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提供单独的Axes,否则将使用此轴空间的一部分绘制颜色图。

参数:data:矩形数据集

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

vmin, vmax:浮点型数据,可选参数。

用于锚定色彩映射的值,否则它们是从数据和其他关键字参数推断出来的。

cmap:matplotlib 颜色条名称或者对象,或者是颜色列表,可选参数。

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

center:浮点数,可选参数。

绘制有色数据时将色彩映射居中的值。 如果没有指定,则使用此参数将更改默认的cmap

robust:布尔值,可选参数。

如果是True,并且vminvmax为空,则使用稳健分位数而不是极值来计算色彩映射范围。

annot:布尔值或者矩形数据,可选参数。

如果为True,则在每个热力图单元格中写入数据值。 如果数组的形状与data相同,则使用它来代替原始数据注释热力图。

fmt:字符串,可选参数。

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

annot_kws:字典或者键值对,可选参数。

annot为True时,ax.text的关键字参数。

linewidths:浮点数,可选参数。

划分每个单元格的行的宽度。

linecolor:颜色,可选参数

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

cbar:布尔值,可选参数。

描述是否绘制颜色条。

cbar_kws:字典或者键值对,可选参数。

fig.colorbar的关键字参数。

cbar_ax:matplotlib Axes,可选参数。

用于绘制颜色条的轴,否则从主轴获取。

square:布尔值,可选参数。

如果为True,则将坐标轴方向设置为“equal”,以使每个单元格为方形。

xticklabels, yticklabels:“auto”,布尔值,类列表值,或者整形数值,可选参数。

如果为True,则绘制数据框的列名称。如果为False,则不绘制列名称。如果是列表,则将这些替代标签绘制为xticklabels。如果是整数,则使用列名称,但仅绘制每个n标签。如果是“auto”,将尝试密集绘制不重叠的标签。

mask:布尔数组或者DataFrame数据,可选参数。

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

ax:matplotlib Axes,可选参数。

绘制图的坐标轴,否则使用当前活动的坐标轴。

kwargs:其他关键字参数。

所有其他关键字参数都传递给ax.pcolormesh

返回值:ax:matplotlib Axes

热力图的轴对象。

另请参见

clustermap

使用分层聚类绘制矩阵以排列行和列。

范例

为numpy数组绘制热力图:

>>> import numpy as np; np.random.seed(0)
>>> import seaborn as sns; sns.set()
>>> uniform_data = np.random.rand(10, 12)
>>> ax = sns.heatmap(uniform_data)

http://seaborn.pydata.org/_images/seaborn-heatmap-1.png

更改默认的colormap范围:

>>> ax = sns.heatmap(uniform_data, vmin=0, vmax=1)

http://seaborn.pydata.org/_images/seaborn-heatmap-2.png

使用发散色图绘制以0为中心的数据的热力图:

>>> normal_data = np.random.randn(10, 12)
>>> ax = sns.heatmap(normal_data, center=0)

http://seaborn.pydata.org/_images/seaborn-heatmap-3.png

使用特定的行和列标签绘制dataframe:

>>> flights = sns.load_dataset("flights")
>>> flights = flights.pivot("month", "year", "passengers")
>>> ax = sns.heatmap(flights)

http://seaborn.pydata.org/_images/seaborn-heatmap-4.png

使用整数格式的数字值注释每个小单元格:

>>> ax = sns.heatmap(flights, annot=True, fmt="d")

http://seaborn.pydata.org/_images/seaborn-heatmap-5.png

在每个单元格之间添加线:

>>> ax = sns.heatmap(flights, linewidths=.5)

http://seaborn.pydata.org/_images/seaborn-heatmap-6.png

使用不同的colormap:

>>> ax = sns.heatmap(flights, cmap="YlGnBu")

http://seaborn.pydata.org/_images/seaborn-heatmap-7.png

将colormap置于特定值的中心:

>>> ax = sns.heatmap(flights, center=flights.loc["January", 1955])

http://seaborn.pydata.org/_images/seaborn-heatmap-8.png

绘制每个其他列标签,而不绘制行标签:

>>> data = np.random.randn(50, 20)
>>> ax = sns.heatmap(data, xticklabels=2, yticklabels=False)

http://seaborn.pydata.org/_images/seaborn-heatmap-9.png

不绘制颜色条:

>>> ax = sns.heatmap(flights, cbar=False)

http://seaborn.pydata.org/_images/seaborn-heatmap-10.png

在不同的坐标轴方向绘制颜色条:

>>> 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"})

http://seaborn.pydata.org/_images/seaborn-heatmap-11.png

使用遮罩绘制矩阵中的一部分

>>> 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"):
...     ax = sns.heatmap(corr, mask=mask, vmax=.3, square=True)

http://seaborn.pydata.org/_images/seaborn-heatmap-12.png