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

R语言ggplot柱状图如何在柱顶添加计数标注

ggplot2 柱状图柱顶添加计数标注的简便方法

不需要提前做分组聚合生成计数列,直接调用ggplot2内置的统计变换就能实现,代码更简洁,也不会因为原始数据变动需要重新计算聚合表。

最简实现

直接在原有绘图代码上叠加文本层即可:

library(ggplot2)
g <- ggplot(mpg, aes(class))
g + geom_bar() +
  geom_text(stat = "count", aes(label = after_stat(count)), vjust = -0.3)

关键参数说明

  • stat = "count":让文本层和geom_bar()使用相同的计数逻辑,自动按x轴的class类别分组统计观测数,完全省去手动聚合的步骤
  • aes(label = after_stat(count)):直接调用统计过程自动生成的计数值作为标注文本,适配ggplot2 3.3.0及以上的新版本;老版本可替换为aes(label = ..count..),效果一致
  • vjust = -0.3:将标注位置调整到柱顶上方,避免和柱体重叠,可根据显示效果调整数值大小,数值越大标注离柱顶越远
  • 如果需要带边框的文本标注,把geom_text()换成geom_label()即可,其余参数不用改
  • 如果标注被y轴顶部截断,添加scale_y_continuous(expand = expansion(mult = c(0, 0.1)))即可自动在顶部预留10%的显示空间,无需手动设置y轴上限

如果是绘制堆叠/分面柱状图,只需要给文本层添加对应的位置参数即可,比如堆叠图加position = position_stack(vjust = 0.5)就能把标注放在每个柱段的中间,同样不需要提前聚合数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 16:24:19