【发布时间】:2018-12-12 04:01:12
【问题描述】:
我正在构建一个树状图并将其截断以仅显示最大的 6 个集群。此外,标签是通过一个简单的叶子标签函数完成的:
def llf(id):
return str(id)
tree = sch.dendrogram(Z, truncate_mode='lastp',
leaf_label_func=llf, p=6, show_contracted=False,
show_leaf_counts=False, leaf_rotation=90,
no_labels = False, orientation='right')
我的输出如下所示:
我的目标是用该集群内成员的最小值替换叶子的非描述性标签。例如,如果顶部叶子是包含范围从 10 到 1000 的集群,那么我想将 '2468' 替换为 10。替换图中刻度的实际逻辑很容易实现:
fig, ax = plt.subplots()
mislabels = ["foo" for i in range(7)]
ax.set_xticklabels(mislabels, fontsize=10, rotation=45)
关于如何从领导者内部提取价值的任何想法?
到目前为止,我能够使用 fcluster 将每个单例叶子映射到其集群。但是,这只会将我最初的 1230 个点映射到一个集群。我需要将标记为“2468”的点映射到其集群,但我不知道该怎么做。
谢谢!
【问题讨论】:
标签: python-3.x matplotlib scipy dendrogram