seaborn 中 clustermap 的标签

新手上路,请多包涵

我有几个关于在 clustermap seaborn 问题。首先是可以提取层次聚类的距离值,并在树结构可视化上绘制值(可能只有前三个级别)。

这是我创建集群图的示例代码:

 import pandas as pd
import numpy as np
import seaborn as sns
get_ipython().magic(u'matplotlib inline')

m = np.random.rand(50, 50)
df = pd.DataFrame(m, columns=range(4123, 4173), index=range(4123, 4173))
sns.clustermap(df, metric="correlation")

在此处输入图像描述

其他两个问题是: - 如何旋转 y 标签,因为它们重叠在一起。

- 如何将颜色条移动到底部或右侧。 (有一个关于热图的 问题,但对我的情况不起作用。也没有解决颜色条的位置)

原文由 Bin 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

我在旋转 y 轴上的标签时遇到了完全相同的问题,并找到了解决方案。问题是,如果你做 plt.yticks(rotation=0) 就像你引用的问题中所建议的那样,由于 ClusterGrid 的工作方式,它会旋转你的 colobar 上的标签。

要解决它并旋转正确的标签,您需要从底层引用 Axes Heatmap 并旋转这些:

 cg = sns.clustermap(df, metric="correlation")
plt.setp(cg.ax_heatmap.yaxis.get_majorticklabels(), rotation=0)

对于您关于颜色条放置的其他问题,我认为目前不支持这一点,不幸的是,正如 这个 Github 问题 所指出的那样。

最后对于层次聚类距离值,您可以访问行或列的链接矩阵:

 cg = sns.clustermap(df, metric="correlation")
cg.dendrogram_col.linkage # linkage matrix for columns
cg.dendrogram_row.linkage # linkage matrix for rows

原文由 Charles Menguy 发布,翻译遵循 CC BY-SA 3.0 许可协议

import seaborn as sns
g = sns.clustermap(heatmap_df, metric="correlation")

plt.setp(g.ax_heatmap.get_yticklabels(), rotation=0)  # For y axis
plt.setp(g.ax_heatmap.get_xticklabels(), rotation=90) # For x axis

原文由 Surya 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题