Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

add mean line to ggplot

Tags:

r

ggplot2

I'd like to build on this example of conditioning line color on slope to add a line for the mean (line from mean t=1 to mean t=2).

library(dplyr)
set.seed(205)
dat = data.frame(t=rep(1:2, each=10), 
                 pairs=rep(1:10,2), 
                 value=rnorm(20))

ggplot(dat %>% group_by(pairs) %>%
         mutate(slope = (value[t==2] - value[t==1])/(2-1)),
       aes(t, value, group=pairs, colour=slope > 0)) +
  geom_point() +
  geom_line()

I tried adding stat_summary(fun.y=mean, geom="line") without any luck.

Computation failed in stat_summary(): 'what' must be a function or character string

like image 444
Eric Green Avatar asked Nov 30 '16 03:11

Eric Green


1 Answers

I didn't get the error you describe (with ggplot2 v 2.2.0), but in order to get the desired result I did have to override the grouping you specified in the main plot:

stat_summary(fun.y=mean,geom="line",lwd=2,aes(group=1))
like image 189
Ben Bolker Avatar answered Sep 30 '22 01:09

Ben Bolker