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()
.
fun.data. A function that is given the complete data and should return a data frame with variables ymin , y , and ymax .
ggplot2 has the ability to summarise data with stat_summary . This particular Stat will calculate a summary of your data at each unique x value. The following creates a scatter plot of some points with a mean calculated at each x and connected by a line.
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.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With