例如,如果我使用ggplot2's stat_summary()来制作3加仑,4加仑和5加速汽车的平均每加仑英里数的条形图,我该如何用mpg的平均值标记每个条形图?
library(ggplot2)
CarPlot <- ggplot() +
stat_summary(data= mtcars,
aes(x = factor(gear),
y = mpg,
fill = factor(gear)
),
fun.y="mean",
geom="bar"
)
CarPlot
Run Code Online (Sandbox Code Playgroud)
我知道你可以正常使用geom_text(),但我无法弄清楚要做什么才能获得平均值stat_summary().
ags*_*udy 19
您应该使用内部变量..y..来获得计算的平均值.

library(ggplot2)
CarPlot <- ggplot(data= mtcars) +
aes(x = factor(gear),
y = mpg)+
stat_summary(aes(fill = factor(gear)), fun.y=mean, geom="bar")+
stat_summary(aes(label=round(..y..,2)), fun.y=mean, geom="text", size=6,
vjust = -0.5)
CarPlot
Run Code Online (Sandbox Code Playgroud)
但事先聚合可能更好.
我只是预先计算统计数据,然后构建情节:
library(plyr)
library(ggplot2)
dat = ddply(mtcars, .(gear), summarise, mean_mpg = mean(mpg))
dat = within(dat, {
gear = factor(gear)
mean_mpg_string = sprintf('%0.1f', mean_mpg)
})
ggplot(dat, aes(x = gear, y = mean_mpg)) +
geom_bar(aes(fill = gear), stat = "identity") +
geom_text(aes(label = mean_mpg_string), vjust = -0.5)
Run Code Online (Sandbox Code Playgroud)
