[R] how to plot separate lm ablines on the same xyplot by group

Bert Gunter gunter.berton at gene.com
Wed Apr 18 23:20:58 CEST 2012


x <- rep(1:10,4)
y <- runif(40)
z <- sample(letters[1:4],40,rep=TRUE)
grp <- sample(LETTERS[1:2],40,rep=TRUE)
xyplot(y~x|z, group=grp,  panel = panel.superpose,
  panel.groups = function(...){
    panel.xyplot(...)
    panel.lmline(...)
    })

Keys (legends), colors, line styles,etc, can all be customized. Read
the xyplot docs (including Deepayan's book) for details.

-- Bert

On Wed, Apr 18, 2012 at 1:07 PM, Louis Plough <lplough at usc.edu> wrote:
> If you could lead me to an example with code, that would help me figure out
> how to do it for my function
>
>
> On Wed, Apr 18, 2012 at 3:57 PM, Louis Plough <lplough at usc.edu> wrote:
>>
>> I read it, but I guess I don't quite understand which arguments to pass
>> panel.groups to get different lm objects based on the two groups within
>> Food.
>>
>>
>>
>> On Wed, Apr 18, 2012 at 3:44 PM, Bert Gunter <gunter.berton at gene.com>
>> wrote:
>>>
>>> Please read ?panel.superpose  again and pay attention to the
>>> panel.groups argument, where this can be specified.
>>>
>>> -- Bert
>>>
>>> On Wed, Apr 18, 2012 at 12:34 PM, Louis Plough <lplough at usc.edu> wrote:
>>> > Hi,
>>> > I am trying to use xyplot to plot the relationship between size and day
>>> > (y~x) by a food factor that has two levels, low and high. I have 3 reps
>>> > per
>>> > factor/day.  I want the plots from each food treatment on the same
>>> > axiss,
>>> > so I used this code:
>>> >
>>> > xyplot(Size ~ Day, groups = Food, data = louis.data.means,col=1,
>>> > pch=c(1,17),
>>> > panel=function(x,y,groups,...){
>>> > panel.superpose(x,y,groups,...)
>>> > tmp.lm<-lm(y~x)
>>> > panel.abline(tmp.lm)
>>> > panel.text(2, 250, label=format(tmp.lm$coefficients[2], digits=4),
>>> > pos=4)
>>> > }
>>> > )
>>> > This produces a graph of the two treatments (open circles for the low
>>> > food
>>> >  vs triangles for the high food) on the same plot, but only one
>>> > regression
>>> > line (and slope)  which seems to splits the difference between the two
>>> > factors (treats them as the same data set).  I would like to produce a
>>> > separate regression line for the data from each of the two factors
>>> > (high
>>> > food vs low food).
>>> >
>>> > Is there a way to subset the lm by the factor "food"?
>>> >
>>> > Louis
>>> >
>>> >        [[alternative HTML version deleted]]
>>> >
>>> > ______________________________________________
>>> > R-help at 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.
>>>
>>>
>>>
>>> --
>>>
>>> Bert Gunter
>>> Genentech Nonclinical Biostatistics
>>>
>>> Internal Contact Info:
>>> Phone: 467-7374
>>> Website:
>>>
>>> http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm
>>
>>
>



-- 

Bert Gunter
Genentech Nonclinical Biostatistics

Internal Contact Info:
Phone: 467-7374
Website:
http://pharmadevelopment.roche.com/index/pdb/pdb-functional-groups/pdb-biostatistics/pdb-ncb-home.htm



More information about the R-help mailing list