I have a list of linear and non-linear models obtained from different data sets measuring the same two variables x and y that I would like to build on the same plot using stat_smooth . This makes it easy to compare the relationship between x and y through data sets.
I am trying to find the most efficient way to do this. Right now, I am considering creating an empty ggplot object, and then using some kind of loop or lapply to sequentially add to this object, but this turns out to be more complicated than I thought. Of course, it would be easier to just put the models on ggplot , but as far as I know, this is not possible. Any thoughts?
Here is a simple example of a data set for playback using only two models: one linear and one exponential:
df1=data.frame(x=rnorm(10),y=rnorm(10)) df2=data.frame(x=rnorm(15),y=rnorm(15)) df.list=list(lm(y~x,df1),nls(y~exp(a+b*x),start=list(a=1,b=1),df2))
And two separate examples:
ggplot(df1,aes(x,y))+stat_smooth(method=lm,se=F) ggplot(df2,aes(x,y))+stat_smooth(method=nls,formula=y~exp(a+b*x),start=list(a=1,b=1),se=F)
source share