在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()来计算均值,而无需计算新的数据帧?
答案 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()