[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