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

如何在R的ggplot图边缘的分组名称下方放置geom_text?

在ggplot分组标签正下方添加样本量文本的方法

要实现将样本量文本固定在分组名称(x轴标签)正下方,且不依赖Y轴刻度的适配方案,可以通过以下方式修改代码:

修改后的完整代码

library(tidyverse)

mt = mtcars %>%
  group_by(cyl) %>%
  summarize(N = n())

ggplot(mtcars, aes(x = factor(cyl), y = hp, color = factor(cyl))) +
  geom_point() +
  geom_text(
    data = mt, 
    aes(x = factor(cyl), y = -Inf, label = paste("N = ", N)),
    vjust = 1.5,  # 可按需调整,数值越大文本越靠下
    color = "black"
  ) +
  coord_cartesian(clip = "off") +
  theme(plot.margin = margin(b = 20, unit = "pt"))  # 增加底部边距防止文本被截断

关键逻辑说明

  • y = -Inf:将文本锚定在Y轴绝对底部,完全脱离当前图表的Y轴刻度范围限制
  • vjust = 1.5:控制文本垂直偏移量,vjust=1为文本底部与锚点对齐,大于1的数值会让文本向下偏移至x轴标签下方
  • coord_cartesian(clip = "off"):默认情况下ggplot会裁剪绘图区域外的元素,开启此参数才能显示超出区域的样本量文本
  • plot.margin:调整图表底部边距,避免样本量文本被图表边框截断

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 10:52:39