`ggplot2`: label values of barplot that uses `fun.y="mean"` of `stat_summary`

ggplot2, r

Solution

You should use the internal variable `..y..` to get the computed mean.

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

but probably it is better to aggregate beforehand.

Problem

If I use `ggplot2`'s `stat_summary()` to make a barplot of the average number of miles per gallon for 3-, 4-, and 5-geared cars, for example, how can I label each of the bars with the average value for mpg? ``` library(ggplot2) CarPlot <- ggplot() + stat_summary(data= mtcars, aes(x = factor(gear), y = mpg, fill = factor(gear) ), fun.y="mean", geom="bar" ) CarPlot ``` I know that you can normally use `geom_text()`, but I'm having trouble figuring out what to do in order to get the average value from `stat_summary()`.

Original source