为 clustermap 中的某些行和列添加阴影线

问题描述 投票:0回答:1

我使用seaborn.clustermap()来绘制聚类图,如下所示

labels = ["a", "b", "c", "d", "e", "f", "g", "h", "i", "j", "k", "l", "m", "n", "o", "p", "q", "r", "s", "t", "u", "v"]
sns.clustermap(data, cmap=sns.cm.rocket_r, xticklabels=labels, yticklabels=labels)

很明显有两个簇,“m”、“o”、“d”、“n”、“p”与其他簇。现在我想在“m”、“o”、“d”、“n”、“p”的行和列上添加影线(“//”)以突出显示差异,我该怎么做?谢谢。

python matplotlib seaborn heatmap clustermap
1个回答
0
投票

我通过遵循这个问题中的答案找到了如何做到这一点:向seaborn热图添加舱口

mask = np.ones_like(data)
mask[idx_to_mask, :] = False
mask[:, idx_to_mask] = False
data_masked = np.ma.masked_where(mask, data)

g = sns.clustermap(data, cmap=sns.cm.rocket_r, xticklabels=labels, yticklabels=labels)
ax = g.ax_heatmap
y = x = np.arange(len(data)+1)
ax.pcolor(x, y, data_masked, hatch='//', alpha=0.)
© www.soinside.com 2019 - 2024. All rights reserved.