在ggplot中绘制均值,而无需使用stat_summary()

时间:2018-12-10 18:03:25

标签: r ggplot2

在ggplot中,我想计算均值(每组)并将其绘制为点。我想用geom_point()而不是stat_summary()来做到这一点。 这是我的数据。

group = rep(c('a', 'b'), each = 3)
grade = 1:6
df = data.frame(group, grade)
# this does the job
ggplot(df, aes(group, grade)) + 
  stat_summary(fun.y = 'mean', geom = 'point')
# but this does not
ggplot(df, aes(group, grade)) + 
  geom_point(stat = 'mean')

上面的stat参数可以使用什么值? 是否可以使用geom_point()来计算均值,而无需计算新的数据帧?

1 个答案:

答案 0 :(得分:4)

你可以做

ggplot(df, aes(group, grade)) + 
  geom_point(stat = 'summary', fun.y="mean")

但是总的来说,依靠ggplot为您进行数据操作并不是一个好主意。只需让ggplot进行绘图即可。您可以使用dplyr之类的软件包来进行汇总

df %>% group_by(group) %>% 
  summarize(grade=mean(grade)) %>% 
  ggplot(aes(group, grade)) + 
    geom_point()