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

如何使ggplot中geom_text显示在柱状图条形正上方?

解决方法

要让计数标签自动显示在条形正上方,只需调整stat_count的位置参数与y轴映射逻辑,具体修改如下:

  1. 移除原代码中的position_fill(),改用position_stack(vjust = 1.05),让标签定位在条形顶部外侧
  2. 在stat_count的aes里明确指定y = stat(count),确保标签基于条形的实际高度定位

修改后的完整代码:

sur %>%
  ggplot(aes(y = fct_infreq(no_lifetime_bite))) + 
  geom_bar() + 
  ylab("No of bites") + 
  xlab("Body part") + 
  ggtitle("Anatomical sites of animal bites") + 
  stat_count(geom = "text", 
             aes(y = stat(count), label = stat(count)), 
             position = position_stack(vjust = 1.05))

细节调整

  • 若标签和条形顶部的距离不符合预期,可以修改vjust的数值:数值越大,标签离条形顶部越远;数值越小则越近
  • 如果是多组柱状图场景,可替换为position_dodge(width = 0.9)配合vjust来实现分组标签的对齐

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 01:04:52