On Jun 13, 2012, at 10:29 AM, Kristi Glover wrote:
Hi R experts,
Could you please help me to fit a linear, cubic and quadratic curve
in a figure? I was trying to show all these three fitting curves
with different colour in one figure.
I spent substantial time to figure it out, but I could not.
I have given here a example and what I did for linear, but no idea
for cubic and quadratic fitting curve
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)
Here I did for linear, but now I don't how I can plot quadratic and
cubic line in the figure with different colour. I further wanted to
put r2 value on the top of the fitting line.
ON linear fitting curve, I can see the line originated from left to
right (cover whole x axis). I could not plot the line only within
the data set.
Would any one help me to figure it? I think it is not difficult but
for me- it is really taking time.
There is the poly function that does the heavy lifting and also
preserves the statistical propriety of polynomial fits.
> quadratic<-lm( sp ~ poly(env, 2), data=test)
> #summary(quadratic)
> cubic<-lm( sp ~ poly(env, 3), data=test)
> #summary(cubic)
> #fitting curve
> plot( sp~ env, data=test, main = "S vs. temp", xlim=c(0,20),
ylim=c(0,14), ylab="S",xlab="env")
> abline(linear)
> lines( test$env[order(test$env)] , predict(quadratic)[order(test
$env)] )
> lines( test$env[order(test$env)] , predict(cubic)[order(test
$env)] , col="red")
You can substitute:
lines( x=seq( min(test$env) , max(test$env), len=100) ,
y= predict(model, data.frame(env=seq( min(test$env) , max(test$env),
len=100) ) ) )
... if you want smoother output.
--
David Winsemius, MD
West Hartford, CT
______________________________________________
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.