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或为提供单独的Axes ,否则将占用此Axes空间的一部分并将其用于绘制颜色图cbar_ax
。
参量
data : 矩形数据集 可以强制为ndarray的2D数据集。如果提供了Pandas DataFrame,则索引/列信息将用于标记列和行。
vmin,vmax : 浮点数,可选 锚定颜色图的值,否则从数据和其他关键字参数推断出它们。
cmap : matplotlib颜色图名称或对象,或颜色列表,可选 从数据值到色彩空间的映射。如果未提供,则默认值取决于是否设置。
center : 浮点数,可选 绘制不同数据时将颜色图居中的值。cmap如果未指定,则使用此参数将更改默认值。
robust : 布尔值,可选 如果没有True和vminor vmax,则使用稳健的分位数而不是极值来计算颜色图范围。
annot : 布尔或矩形的数据集,可选 如果为True,则在每个单元格中写入数据值。如果形状与相同的类似数组的数组data,请使用它来注释热图而不是数据。请注意,DataFrame将在位置而不是索引上匹配。
fmt : 字符串,可选 添加注释时要使用的字符串格式代码。
annot_kws :关键字值映射,可选
linewidths:浮点数,可选 将划分每个单元格的线的宽度。
linecolor: 颜色,可选 将划分每个单元格的线的颜色。
cbar : 布尔值,可选 是否绘制颜色条。
cbar_kws:键、值映射,可选 fig.colorbar的关键字参数。
cbar_ax : matplotlib轴,可选 在其中绘制颜色栏的轴,否则从主轴上占用空间。
square:布尔值,可选 如果为True,则将“轴”纵横比设置为“相等”,以便每个单元格为正方形。
xticklabels,yticklabels: “ auto”,布尔值,类似列表或int的,可选 如果为True,则绘制数据框的列名称。如果为False,则不要绘制列名。如果类似列表,则将这些替代标签绘制为xticklabel。如果是整数,请使用列名称,但仅绘制每n个标签。如果为“自动”,请尝试密集绘制不重叠的标签。
mask :布尔数组或DataFrame,可选 如果通过,数据将不会显示在mask为True的单元格中。缺少值的单元格将被自动屏蔽。
ax:matplotlib Axes,,可选 在其中绘制绘图的轴,否则使用当前活动的轴。
kwargs :其他关键字参数 所有其他关键字参数都传递给 matplotlib.axes.Axes.pcolormesh()。
返回 axmatplotlib 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)
更改颜色图的限制:
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["January", 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)
©版权所有2012-2020,Michael Waskom。使用Sphinx 2.3.1 创建。林显祖于2020-03-13整理。