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

R语言层次聚类树状图不符合预期,需将品种设为叶节点

解决层次聚类树状图叶节点显示Variety因子水平的问题

嘿,我懂你现在的困扰——你做了凝聚层次聚类,画树状图的时候却没法把Variety列的因子水平显示在y轴叶节点上。其实只需要给绘图函数加个参数就能搞定,我给你具体的修改方案:


核心修改:自定义叶节点标签

plot.hclust()函数支持通过labels参数指定叶节点显示的内容,直接把你的Variety列传进去就行。修改后的完整代码如下:

library(cluster)

# 计算Gower距离(你的原代码不变)
dist <- daisy(cluster, metric = "gower")
# 执行Ward法层次聚类(原代码不变)
kaari <- hclust(dist, method = "ward.D2")

# 关键:在plot时指定labels为cluster$Variety
plot(kaari, cex = 0.6, hang = -1, labels = cluster$Variety)

处理重复标签的小技巧

如果你的数据里同一个Variety对应多个样本(比如搭配不同的Sample.Part),叶节点会出现重复的Variety名称。要是想区分这些样本,可以把Variety和Sample.Part组合成新标签:

# 生成组合标签,方便区分同Variety的不同样本
custom_labels <- paste(cluster$Variety, cluster$Sample.Part, sep = "_")

# 使用组合标签绘图
plot(kaari, cex = 0.6, hang = -1, labels = custom_labels)

优化标签显示(可选)

如果标签太多挤在一起,除了用cex缩小字号,还可以用las参数把标签垂直旋转,避免重叠:

plot(kaari, cex = 0.6, hang = -1, labels = cluster$Variety, las = 2)

las=2会让标签垂直于坐标轴,可读性会好很多。


这样修改后,树状图的y轴叶节点就会完美显示你想要的Variety因子水平啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:24:43