在 ggscatter 中为 stat_mean 添加标签

Adding a label to stat_mean in ggscatter

我在看ggpubr::stat_mean:

有没有办法在组平均点的顶部添加一个标签来指示摸索标签cyl?谢谢!

[可重现的例子:]

# Load data
library(ggpubr)
df <- mtcars
df$cyl <- as.factor(df$cyl)

# Scatter plot with ellipses and group mean points
ggscatter(df, x = "wt", y = "mpg",
          color = "cyl", shape = "cyl", ellipse = TRUE)+
  stat_mean(aes(color = cyl, shape = cyl), size = 4)

我有点不清楚你会如何用 ggpubr 做到这一点。出于某种原因,它似乎不喜欢让你使用 geom_text 和 stat_mean

一种解决方法是直接使用 ggplot 和一点 dplyr 来计算均值。你可以做到

library(dplyr)

means <- df %>% 
  group_by(cyl) %>% 
  summarize(across(c(wt, mpg), mean))

ggplot(df)  +
  aes(x=wt, y=mpg, color=cyl, shape=cyl) + 
  geom_point() + 
  stat_ellipse(aes(fill=cyl), alpha=.2, geom="polygon") + 
  geom_point(size=4, data=means) + 
  geom_label(aes(label=cyl), color="black", nudge_y =2.5, data=means) + 
  ggpubr::theme_pubr()

获得