matplotlib 在clustermap中为某些行和列添加影线

egmofgnx  于 7个月前  发布在  其他
关注(0)|答案(1)|浏览(68)

我使用seaborn.clustermap()绘制了如下所示的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)

字符串
x1c 0d1x的数据
很明显有两个集群,“m”,“o”,“d”,“n”,“p”与其余的。现在我想添加阴影线(“//”)到“m”,“o”,“d”,“n”,“p”的行和列来突出差异,我怎么做?谢谢。

l5tcr1uw

l5tcr1uw1#

我通过下面这个问题的答案找到了如何做到这一点:adding hatches to seaborn heatmap plot

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.)

字符串

相关问题