我有一种感觉,这是一个非常简单的问题,但我无法弄清楚。
我有一小组轨迹,我试图使用scipi hcluster进行聚类。
我在这方面取得了成功
from hcluster import linkage, dendrogram
l = linkage(matrix)
d = dendrogram(l)
show()
但是我无法弄清楚如何将树形图指定的颜色映射回原始轨迹。树形图具有以下键['ivl','dcoord','leaves','color_list','icoord']。根据文档“ivl”是打印在图底部的标签集,由于字体很小,因此无法读取这些标签。
我试过以下
for index, label in enumerate(d['ivl']):
print 'trajectory #%s has color %s' % (label, d['color_list'][index])
然而,这会爆发,因为color_list中的颜色比ivl中的标签少一个。当我看到树形图时,我可以清楚地看到2个绿色,2个红色,3个洋红色等。但是树形图告诉我否则
from collections import Counter
Counter(d['color_list'])
Counter({'y': 68, 'b': 18, 'm': 2, 'c': 1, 'g': 1, 'r': 1})
最后我的问题。这个糟糕的结构是什么?我如何通过树形图实际获得分配给每个轨迹的颜色?
答案 0 :(得分:0)
我有同样的问题并找到了你的帖子。希望你现在已经找到了答案,因为已经有几个月,但万一其他人也遇到了这个问题: 您可以使用函数fcluster来获取集群: http://docs.scipy.org/doc/scipy/reference/generated/scipy.cluster.hierarchy.fcluster.html#scipy.cluster.hierarchy.fcluster
fcluster(Z,0.7*max(Z[:,2]),'distance')
应该将fcluster参数与默认的树形图参数匹配。
希望这有效!