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

ggplot2 coord_polar绘图添加名称、数值、占比三类标签方法

实现方法

你要的组合换行标签不需要依赖额外扩展包,直接提前拼接好带换行符的标签字符串,传入geom_text即可实现,具体步骤如下:

  1. 先预处理数据集,拼接符合要求的标签
library(ggplot2)
# 拼接两行结构的标签:第一行为分类名称,第二行为 数值(占比%)
usage.may$plot_label <- paste0(
  trimws(usage.may$Label), # 清除原Label字段首尾多余的空格
  "\n",
  usage.may$Value,
  " (",
  usage.may$Percent,
  "%)"
)
# 值为0的扇区清空标签,避免无效标签堆在图表中心
usage.may$plot_label[usage.may$Value == 0] <- ""
  1. 修改原绘图代码,替换标签映射即可
ggplot(usage.may, aes(x = Level, y = Percent, fill = Subcategory)) +
  geom_col(
    color = 'white',
    linewidth = 0.8,
    show.legend = FALSE
  ) +
  geom_text(
    aes(label = plot_label),
    size = 3,
    colour = "white",
    position = position_stack(vjust = 0.5),
    lineheight = 0.9 # 调整两行标签的行距,避免文字过散
  ) +
  # 要做标准环形效果就加这行挖空中心,不需要可以删掉
  xlim(c(0, 4)) +
  coord_polar('y') +
  theme_minimal()

注意事项

  • 原代码开头的gplot是拼写错误,正确函数名是ggplot
  • 如果小占比扇区的标签出现重叠,可以加过滤规则,比如把占比小于2%的扇区标签设为空,减少视觉杂乱
  • 你数据里的Level字段已经区分了内外环层级,position_stack会自动把标签对应到各自环的中心位置,不需要手动调整坐标

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 17:27:51