It is more direct to use predict() instead of reconstructing by hand the prediction expression from the formula given to lm(). E.g.,
> x <- seq(1,6,by=1/4) > y <- sin(x) + rnorm(length(x), 0, 1/4) > plot(x, y) > fits <- lapply(1:3, function(degree)lm(y~poly(x, deg=degree))) > xpred <- pretty(x, n=50) > predictions <- lapply(fits, predict, newdata=list(x=xpred)) > invisible(lapply(seq_along(fits), function(i)lines(xpred, predictions[[i]], col=i))) If you change your fitting function, say to rq, or your formula, say to use a categorical variable or interaction, you don't have to change anything else, as the predict method for a model type takes care of the details. Bill Dunlap Spotfire, TIBCO Software wdunlap tibco.com > -----Original Message----- > From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On > Behalf > Of Robert Baer > Sent: Wednesday, June 13, 2012 8:40 AM > To: Kristi Glover; R-help > Subject: Re: [R] How to plot linear, cubic and quadratic fitting curve in a > figure? > > > > dput(test) > structure(list(sp = c(4L, 5L, 9L, 12L, 14L), env = c(12L, 18L, > 20L, 17L, 15L)), .Names = c("sp", "env"), class = "data.frame", row.names = > c(NA, > -5L)) > > plot(test$sp~test$env, main = "S vs. temp", xlim=c(0,20), ylim=c(0,14), > > ylab="S",xlab="env") > > linear<-lm(test$sp~test$env) > > quadratic<-lm(test$sp~test$env+I(test$env^2)) > > #summary(quadratic) > > cubic<-lm(test$sp~test$env+I(test$env^2)+I(test$env^3)) > > #summary(cubic) > > #fitting curve > > abline(linear) > > > Thanks and waiting for your suggestions > > sincerely, > Kristi Glover > > Try adding the following lines of code > cq = coef(quadratic) > cc = coef(cubic) > newenv = seq(min(test$env), max(test$env), by = (max(test$env) - > min(test$env))/500) > sp.quad = cq[1] + cq[2]*newenv +cq[3]*newenv^2 > lines(newenv,sp.quad, col='red') > > sp.cubic = cc[1] + cc[2]*newenv +cc[3]*newenv^2 +cc[4]*newenv^3 > lines(newenv, sp.cubic, col='blue', lty=2) > > ------------------------------------------ > Robert W. Baer, Ph.D. > Professor of Physiology > Kirksville College of Osteopathic Medicine > A. T. Still University of Health Sciences > 800 W. Jefferson St. > Kirksville, MO 63501 > 660-626-2322 > FAX 660-626-2965 > > ______________________________________________ > R-help@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-help > PLEASE do read the posting guide http://www.R-project.org/posting-guide.html > and provide commented, minimal, self-contained, reproducible code. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.