我使用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”的行和列上添加影线(“//”)以突出显示差异,我该怎么做?谢谢。
我通过遵循这个问题中的答案找到了如何做到这一点:向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.)