[R] Plotting curves in lattice panels

David Scott d.scott at auckland.ac.nz
Thu Sep 18 16:12:30 CEST 2008


On Thu, 18 Sep 2008, Deepayan Sarkar wrote:

> On 9/18/08, David Scott <d.scott at auckland.ac.nz> wrote:
>>
>>  I have a data set concerning ferritin levels in blood. There are three
>> relevant columns for this question, ferritin (continuous), score (ordered,
>> from 0 to 8) and gender. There is a good linear relationship between
>> log(ferritin) and score for each gender.
>>
>>  I can create a lattice plot on the log scale showing the data and the
>> fitted line:
>>  xyplot(log(ferritin)  ~ total|gender, data = blood,
>>        panel = function(x, y, ...){
>>          panel.xyplot(x, y)
>>          panel.abline(lm(y ~ x), type = 'l', ...)
>>        }
>>  )
>>
>>  I would like to be able to plot the data and the fitted line on the
>> original scale however. I can't see how to do that.
>
> Something like this should work:
>
> xyplot(ferritin  ~ total|gender, data = blood,
>       panel = function(x, y, ...){
>           panel.xyplot(x, y)
>           fm <- lm(log(y) ~ x)
>           panel.curve(exp(predict(fm, newdata = list(x = x))))
>       })
>
> -Deepayan
>

Thanks very much Deepayan, that is exactly what I was after. Very nice.

David
_________________________________________________________________
David Scott	Department of Statistics, Tamaki Campus
 		The University of Auckland, PB 92019
 		Auckland 1142,    NEW ZEALAND
Phone: +64 9 373 7599 ext 86830		Fax: +64 9 373 7000
Email:	d.scott at auckland.ac.nz

Graduate Officer, Department of Statistics
Director of Consulting, Department of Statistics



More information about the R-help mailing list