树状图中的标签排序

2024-09-28 22:22:56 发布

您现在位置:Python中文网/ 问答频道 /正文

在python中,我有一个N乘N的距离矩阵dmat,其中dmat[I,j]编码从实体I到实体j的距离。我做到了:

from scipy.cluster.hierarchy import dendrogram, linkage
import matplotlib.pylab as plt

labels=[name of entity 1,2,3,...]

Z=linkage(dmat)
dn=dendrogram(Z,labels=labels)
plt.show()

但是标签的顺序看起来不对。有些实体与dmat非常接近,但这并没有反映在树状图中。发生什么事?在


Tags: fromimport实体距离编码labelshierarchymatplotlib
1条回答
网友
1楼 · 发布于 2024-09-28 22:22:56

^{}的第一个参数必须是压缩格式的距离,或者是聚集的点数组。如果传递平方(nxn)距离矩阵,linkage将其解释为N维空间中的N个点。在

您可以用^{}将方阵转换为压缩形式。在

将此添加到文件的开头

from scipy.spatial.distance import squareform

把这个换掉

^{pr2}$

Z = linkage(squareform(dmat))

相关问题 更多 >