如何在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
相关产品推荐
相关产品推荐

