如何在R软件中为层次聚类的各类别及终端节点单独着色?
给层次聚类的聚类及终端节点设置不同颜色
实现思路
- 先用
cutree()确定每个终端节点的聚类归属 - 在树状图绘制时给节点分配对应聚类的颜色
- 让聚类矩形的颜色和节点颜色保持统一,增强视觉区分度
完整代码示例
# 基于已有距离/聚类结果转换为hclust对象 cl <- as.hclust(tw) # 将聚类划分为3类,获取每个样本的聚类标签 cluster_tags <- cutree(cl, k = 3) # 自定义对应3个聚类的颜色(可按需替换) cluster_colors <- c("#E74C3C", "#3498DB", "#2ECC71") # 绘制树状图,给终端节点设置对应聚类的颜色 plot(cl, col.axis = "#F38630", lwd = 3:1, main = '', ylab = '', cex = 1.5, cex.axis = 1.5, col = cluster_colors[cluster_tags] # 节点颜色与所属聚类绑定 ) title(ylab = "Height", mgp = c(2.2, 1, 0), cex.lab = 1.5) # 绘制聚类矩形,边框颜色与节点颜色匹配 par(lwd=3, mar=c(0,0,0,0), lty = 5) rect.hclust(cl, 3, border = cluster_colors) # 可选:给矩形添加半透明填充色,强化聚类区分 # rect.hclust(cl, 3, border = cluster_colors, col = adjustcolor(cluster_colors, alpha.f = 0.2))
关键代码说明
cutree(cl, k = 3):把层次聚类结果拆分为指定的3类,返回每个样本对应的聚类编号cluster_colors[cluster_tags]:通过索引匹配,让每个终端节点的颜色和其所属聚类的颜色一致rect.hclust()的border参数绑定聚类颜色,也可以用col参数配合adjustcolor()添加半透明填充,提升可视化效果
内容的提问来源于stack exchange,提问作者Ashaq
相关产品推荐
相关产品推荐

