[R] plotting fitted lme values as a smooth line

Alexandra R Contosta alix.contosta at unh.edu
Tue Mar 2 18:27:43 CET 2010


I am trying to plot fitted lme values as a smooth line of a graph  
showing the exponential relationship between temperature and soil  
respiration.

In the plot, the x-axis has temperature, and the y-axis has soil  
respiration.  When I try to add a line showing temperature versus the  
fitted values, it is jagged and not smooth.


Here is the code I used:

lme.1<-lme(fixed=LnFlux~Temp, random=~1|Plt, data=resp)
fit.1<-exp(fitted(lme.1))

plot(Flux$Temp, Flux$Flux, xlab="Temperature",  
ylab=expression("CO"[2]*"Flux"), xlim=c(-10, 25), ylim=c(0,250), pch=16)
ord1<-order(CFlux$Temp)
lines(CFlux$TempC[ord1], fit.1[ord1], lty=1, lwd=2)

This does not produce a straight line, but a jagged one that moves up  
and down between points.

If I use fitted values from a simple linear model (lm), I don't have  
this problem, and the line is smooth:

lm.1<-lm(LnFlux~Temp,  data=resp)
fit.2<-exp(fitted(lm.1))
plot(Flux$Temp, Flux$Flux, xlab="Temperature",  
ylab=expression("CO"[2]*"Flux"), xlim=c(-10, 25), ylim=c(0,250), pch=16)
ord2<-order(Flux$Temp)
lines(Flux$Temp[ord2], fit.2[ord2], lty=1, lwd=2)

The only difference I can find between the two is the structure of the  
fitted objects.  The fit.1 object from lme is "atomic", and lacks  
individual data labels.  Instead, the labels are: attr(*, "label")=  
chr "Fitted values".
In contrast, the fit.2 object from the lm is "Named num", with:  
attr(*, "names")= chr [1:460] "1" "2" "3" "4".

Is this difference causing my problem with adding a smooth line to the  
graph?  If so, is there any way I can change the structure of the lme  
fitted object to make it more amenable to adding a smooth line to a  
plot?  Or is something else at work?



More information about the R-help mailing list