You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在ggplot中为stat_summary的mean_cl_boot结果添加均值数值标签?

给抖动图的均值添加数值标签

没问题,我来帮你搞定这个均值标签的问题!你已经用mean_cl_boot画出了带置信区间的均值线,现在只需要再添加一层stat_summary来生成均值的数值标签就可以了。

核心思路是用stat_summary专门计算均值,然后用geom="text"或者geom="label"把数值显示在均值点的附近。下面是修改后的完整代码:

lisbondata %>% 
  ggplot(aes(q1b, exage)) +
  geom_jitter(alpha=0.2) +  # 先画抖动点,避免标签被覆盖
  stat_summary(fun.data = "mean_cl_boot", colour="red") +  # 你的原有置信区间
  stat_summary(
    fun = mean,  # 指定计算均值
    geom = "text",  # 用文本显示标签
    colour = "darkred",  # 标签颜色
    vjust = -1.5,  # 把标签向上移,避免和置信区间重叠
    aes(label = round(..y.., 1))  # 格式化均值,保留1位小数
  ) +
  labs(title = "Age distribution between Yes/No votes", x = "Vote", y = "Age") +
  theme_bw()

一些可调整的细节:

  • 如果想要标签带浅色背景框更清晰,可以把geom="text"改成geom="label"
  • 调整vjust的数值可以改变标签的上下位置(比如vjust=2会把标签移到均值点下方)
  • 修改round(..y.., 1)里的数字可以调整均值的小数位数,比如round(..y.., 0)显示整数
  • 可以自定义标签的字体大小,比如加上size=4参数

这样修改后,每个分组的均值数值就会清晰地显示在红色置信区间的上方啦!

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

火山引擎 最新活动