【发布时间】:2019-12-28 14:37:12
【问题描述】:
我正在使用 seaborn 从矩阵中绘制集群图,并且我希望矩阵的值成为集群图的注释。然而,虽然 clustermap 重新排列数据矩阵的行和列以形成集群,但它不会对注释矩阵这样做。
这是我的代码:
data = np.random.rand(10,5)
print (data)
[[0.62906695 0.41046601 0.04774079 0.98012573 0.79686483]
[0.1618218 0.70365808 0.53644302 0.68291708 0.95152119]
[0.901431 0.19378611 0.33176554 0.00219459 0.92936903]
[0.1575622 0.37749714 0.88975381 0.16945422 0.23790588]
[0.06837024 0.49287138 0.60866541 0.80563271 0.38924653]
[0.13671484 0.11410341 0.14604541 0.49899899 0.82850949]
[0.90237875 0.23954254 0.41614074 0.11811778 0.26017433]
[0.27881206 0.09321617 0.62520404 0.10796313 0.12266986]
[0.27606845 0.8479972 0.86467503 0.19660883 0.11909075]
[0.64211049 0.61860723 0.70426254 0.24465052 0.17614033]]
df = pd.DataFrame(data, columns=['A','B','C','D','E']).corr()
df
A B C D E
A 1.000000 -0.229103 -0.353145 -0.360782 0.084730
B -0.229103 1.000000 0.498165 0.256117 -0.162689
C -0.353145 0.498165 1.000000 -0.443952 -0.727170
D -0.360782 0.256117 -0.443952 1.000000 0.448025
E 0.084730 -0.162689 -0.727170 0.448025 1.000000
sns.clustermap(data=df, annot=df)
如图所示,注解与原df相同,并没有按照图中的簇进行排列。
有什么方法可以让我正确地做到这一点吗?
【问题讨论】:
-
我认为你把事情搞砸了。
data是一个用于聚类的矩形数据。您可以使用参数metric选择用于数据的距离度量。见docs -
不,我知道
metric,但这并不重要。我只是希望 clustermap 上的注释顺序与地图本身保持一致。