如何在ggraph绘制的hclust环形树状图中添加叶节点文本标签?
用ggraph绘制带叶节点标签的环形层次聚类图
当你将hclust对象传入ggraph时,tidygraph会自动把它转换为图结构,其中每个节点自带两个关键属性:
leaf:逻辑值,标记该节点是否为叶节点(对应原始数据的样本/城市)label:对应原始数据的行名(也就是你需要的城市名称)
直接使用geom_node_text,结合filter参数仅针对叶节点添加标签,同时调整角度和对齐方式适配环形布局即可,完整代码如下:
library(ggraph) library(tidygraph) # 生成层次聚类对象 hcity.D2 <- hclust(UScitiesD, "ward.D2") # 绘制带标签的环形聚类图 ggraph(graph = hcity.D2, layout = "dendrogram", circular = TRUE) + geom_edge_link() + # 仅为叶节点添加标签,调整角度避免文字倒置,向外对齐适配环形 geom_node_text( aes(filter = leaf, label = label, angle = -((-node_angle(x, y) + 90) %% 360) + 90), hjust = "outward", size = 3 ) + coord_equal() + theme_void()
关键参数说明
filter = leaf:只筛选叶节点添加标签,排除内部聚类节点angle计算:通过node_angle()获取节点的环形角度,调整后让标签沿环形方向正向显示,避免部分文字倒置hjust = "outward":让标签向环形外侧对齐,保证布局美观
内容的提问来源于stack exchange,提问作者wdkrnls
相关产品推荐
相关产品推荐

