r-在ggplot中绘制平均值,不使用stat_summary()



在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((计算平均值,而不计算新的数据帧?

您可以进行

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()

最新更新