You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何修改层次聚类树状图(Dendrogram)的标签

层次聚类树状图标签替换方案

已完成的聚类步骤

你已经通过以下代码实现25类层次聚类,并为数据框df添加了聚类结果列class:

from sklearn.cluster import AgglomerativeClustering
hc = AgglomerativeClustering(n_clusters = 25, affinity = 'euclidean', linkage = 'ward')
y_hc = hc.fit_predict(df)
df['class'] = y_hc

树状图标签修正方案

要将树状图的叶子标签从默认计数替换为你生成的聚类标签(即class列的值),只需调整dendrogram函数的labels参数,并确保特征数据和聚类时保持一致:

from scipy.cluster import hierarchy
import matplotlib.pyplot as plt

# 生成链接矩阵:使用聚类时的特征列(排除最后一列的class)
linkage_matrix = hierarchy.linkage(df.iloc[:, :-1], method='ward', metric='euclidean')

plt.figure(figsize=(12, 6))
dendrogram = hierarchy.dendrogram(
    linkage_matrix,
    labels=df['class'].values,  # 替换为聚类结果列
    p=25,
    truncate_mode='lastp',
    leaf_font_size=10,
    leaf_rotation=90
)
plt.xlabel('Genomes')
plt.ylabel('Euclidean distances')
plt.title(f'Hierarchical Clustering Dendrogram (method="ward")')
plt.show()

关键注意点

  • 确认linkage函数使用的特征数据和AgglomerativeClustering拟合时完全一致,避免树状图与聚类结果不匹配;
  • 若样本量过大导致标签重叠,可进一步调小leaf_font_size或增大图的figsize。

内容的提问来源于stack exchange,提问作者Fatemeh Nazari

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 20:22:05