seaborn中的clustermap标签?

时间:2016-01-03 00:28:06

标签: python matplotlib machine-learning artificial-intelligence seaborn

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

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

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

enter image description here

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

4 个答案:

答案 0 :(得分:49)

我有一个完全相同的问题,y轴上的标签被旋转并找到了解决方案。 问题是,如果你plt.yticks(rotation=0)喜欢在你引用的问题中提出建议,那么由于ClusterGrid的工作方式,它会轮换你的公鸡上的标签。

要解决此问题并旋转正确的标签,您需要引用基础Axes中的Heatmap并旋转这些标签:

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

关于彩条位置的其他问题,我不认为目前支持这一点,遗憾的是this Github issue所示。

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

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

答案 1 :(得分:3)

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

答案 2 :(得分:1)

你可以通过改变它的轴 cax 的位置来移动颜色条: 例如cg.cax.set_position((.85,.1,.1,.1)),其中(a,b,c,d)分别是轴坐标的x起始位置,y起始位置,x宽度和y高度。

答案 3 :(得分:1)

旋转标签的方式有点不同

g.ax_heatmap.set_yticklabels(g.ax_heatmap.get_yticklabels(), rotation=0)