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

如何在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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 12:39:55