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

如何在ggplot的分面饼图上正确放置标签?

分面饼图标签错位问题解决方案

问题根源

  • 你编写的geom_text层没有配置位置调整参数,默认直接以pct的原始值作为y轴坐标,这个坐标对应每个扇形的下边缘,自然无法居中显示在扇形内部
  • 没有按tag分组做堆叠位置计算,不同分组的标签会出现重叠、偏移甚至超出饼图范围的问题

修正后可运行代码

ggplot(data, aes(x = factor(1), y = pct, fill = tag)) +
  geom_bar(stat = "identity", width = 1) +
  coord_polar("y", start=0) +
  theme_void()+ # 移除背景、网格、数值标签
  facet_wrap(~team)+
  # 新增position_stack参数,vjust=0.5让标签垂直居中在对应扇形内部
  geom_text(aes(label = sprintf("%1.2f%%", 100*pct)), 
            position = position_stack(vjust = 0.5))

可选优化

如果存在文本过长溢出的情况,可以调整size参数缩小文本字号:

geom_text(aes(label = sprintf("%1.2f%%", 100*pct)), 
          position = position_stack(vjust = 0.5),
          size = 3)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 00:36:00