我正在尝试标记由scipy.cluster.hierarchy.dendrogram
生成的树状图中的节点。
我正在使用augmented dendrogram suggested here,试图用('a + c','a + b + c')之类的字符串替换示例中的集群间距离标签(1.01、1.57)。] >
下面是一个示例链接矩阵
Z = array([[ 2, 7, 0, 2], [ 0, 9, 0, 2], [ 1, 6, 0, 2], [ 5, 10, 0, 3], [11, 12, 0, 4], [ 4, 8, 0, 2], [14, 15, 0, 6], [13, 16, 0, 9], [ 3, 17, 1, 10]])
对于此示例,我创建了如下临时标签:
labels = [str(Z[ind,0].astype(int))+'+'+str(Z[ind,1].astype(int)) for ind in range(len(Z))]
并将增强型树状图修改为:
def augmented_dendrogram(labels,*args, **kwargs): ddata = cl.dendrogram(*args, **kwargs) if not kwargs.get('no_plot', False): for ind,(i, d) in enumerate(zip(ddata['icoord'], ddata['dcoord'])): x = 0.5 * sum(i[1:3]) y = d[1] plt.plot(x, y, 'ro') plt.annotate(labels[ind], (x, y), xytext=(10,15), textcoords='offset points', va='top', ha='center') return ddata
但是,结果标签未与树状图中的节点对齐:
<< img src =“ https://image.soinside.com/eyJ1cmwiOiAiaHR0cHM6Ly9pLnN0YWNrLmltZ3VyLmNvbS81SUVpQS5wbmcifQ==” alt =“在此处输入图像描述”>
如何将标签对准正确的节点?
我正在尝试标记scipy.cluster.hierarchy.dendrogram生成的树状图中的节点。我正在使用此处建议的增强树状图,试图替换集群间距离...
如果我正确理解了您的问题,那么您正在scipy的'leaves'
函数返回的字典中查找字段dendrogram
。根据scipy的documentation: