seaborn中的clustermap标签?

Bin*_*Bin 37 python artificial-intelligence machine-learning matplotlib seaborn

我对用于标记的几个问题clustermapseaborn.首先,可以提取层次聚类的距离值,并在树结构可视化上绘制值(可能只有前三个级别).

这是我用于创建clustermap plot的示例代码:

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")
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

另外两个问题是: - 如何旋转y标签,因为它们重叠在一起.
- 如何将颜色条移动到底部或右侧.(有一个关于热图的问题,但对我的情况不起作用.也没有解决颜色条的位置)

Cha*_*guy 50

我有一个完全相同的问题,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)
Run Code Online (Sandbox Code Playgroud)

关于颜色栏位置的其他问题,我认为目前不支持这一点,不幸的是,这个Github问题就表明了这一点.

最后,对于层次聚类距离值,您可以使用以下命令访问行或列的链接指标:

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

  • 我在jupyter笔记本中使用了plt.setp(cg.ax_heatmap.yaxis.get_majorticklabels(),rotation = 0) ? (2认同)

Sur*_*rya 7

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
Run Code Online (Sandbox Code Playgroud)