you shouldn't have to redo your full aes
in the geom_point
and add another layer, just move the shape aes
to the geom_point
call:
df <- data.frame(x=1:10,y=1:100+5,grouping = c(rep("a",10),rep("b",10)))
ggplot(df,aes(x=x,y=y)) +
geom_point(aes(shape=grouping)) +
stat_smooth(method=lm)

EDIT:
To help with your comment:
because annotate
can end up, for me anyway, with the same labels on each facet. I like to make a mini data.frame
that has my variable for faceting and the facet levels with another column representing the labels I want to use. In this case the label data frame is called dfalbs
.
Then use this to label data frame to label the facets individually e.g.
df <- data.frame(x=1:10,y=1:10,grouping =
c(rep("a",5),rep("b",5)),faceting=c(rep(c("oneR2","twoR2"),5)))
dflabs <- data.frame(faceting=c("oneR2","twoR2"),posx=c(7.5,7.5),posy=c(2.5,2.5))
ggplot(df,aes(x=x,y=y,group=faceting)) +
geom_point(aes(shape=grouping),size=5) +
stat_smooth(method=lm) +
facet_wrap( ~ faceting) +
geom_text(data=dflabs,aes(x=posx,y=posy,label=faceting))
