[R] Types in grouped multi-panel (lattice) xyplot

Aaron Arvey aarvey at cs.ucsd.edu
Thu Apr 10 23:20:40 CEST 2008


On Thu, 10 Apr 2008, Deepayan Sarkar wrote:

> On 4/10/08, Deepayan Sarkar <deepayan.sarkar at gmail.com> wrote:
>> On 4/10/08, Aaron Arvey <aarvey at cs.ucsd.edu> wrote:
>> > Apologetic prologue: I've looked through the mailing list for an answer to
>> >  this (since I'm sure it's trivial) but I have not been able to find a fix.
>> >
>> >  So the problem is that I want each group to have a different type of plot.
>> >  "Probes" should be points and "Segments" should be lines (preferably using
>> >  the segment plot command, but I've just been trying -- unsuccessfully --
>> >  to get lines to work).
>> >
>> >  To be exact, the data looks like:
>> >
>> >  loc      val   valtype      mouse
>> >  1428  0.1812367 Probes      2
>> >  1439 -0.4534155 Probes      2
>> >  1499 -0.4957303 Probes      2
>> >  1559  0.2448838 Probes      2
>> >  1611 -0.2030937 Probes      2
>> >  1788 -0.2235331 Probes      2
>> >  1428 0.5        Segment     2
>> >  1439 0.5        Segment     2
>> >  1499 0.5        Segment     2
>> >  1559 0.5        Segment     2
>> >  1611 0.5        Segment     2
>> >  1788 0.5        Segment     2
>> >  1428  0.1812367 Probes      1
>> >  1439 -0.4534155 Probes      1
>> >  1499 -0.4957303 Probes      1
>> >  1559  0.2448838 Probes      1
>> >  1611 -0.2030937 Probes      1
>> >  1788 -0.2235331 Probes      1
>> >  1428 0.5        Segment     1
>> >  1439 0.5        Segment     1
>> >  1499 0.5        Segment     1
>> >  1559 0.1        Segment     1
>> >  1611 0.1        Segment     1
>> >  1788 0.1        Segment     1
>> >
>> >
>> >    * loc is the x-axis location
>> >    * val is the y-axis value
>> >    * valtype is equal to "which" had I been smart and used make.groups
>> >    * mouse is the 'cond' variable
>> >
>> >
>> >  The plot command I'm currently using is,
>> >
>> >  xyplot(val ~ loc | mouse, data = df,
>> >              groups=valtype
>> >              aspect=0.5, layout=c(3,3),
>> >              lty=0, lwd=3, type="p",
>> >              col=c("black", "blue"),
>> >              as.table = TRUE)
>> >
>> >  which gives me black and blue points for the probes/segments (I've infered
>> >  alphabetical order for the groups colors).  When I change the type to
>> >  c("p", "l"), I get
>> >
>> >  xyplot(val ~ loc | mouse, data = df,
>> >              groups=valtype
>> >              aspect=0.5, layout=c(3,3),
>> >              lty=0, lwd=3, type=c("p","l"),
>> >              col=c("black", "blue"),
>> >              as.table = TRUE)
>>
>>
>> Try
>>
>>
>>  xyplot(val ~ loc | mouse, data = df,
>>
>>        groups=valtype,
>>        type=c("p","l"),
>>        ## distribute.type = TRUE,
>
> Sorry, that should be
>
>       distribute.type = TRUE,
>
>>        col=c("black", "blue"))

That did exactly what I was looking for!  I now have a very nice lattice 
plot with points and lines!


>> >  I get the exact same plot.  I've tried using a few of the panel functions
>> >  I found on the list (I was particularly hopeful for
>> >  http://tolstoy.newcastle.edu.au/R/help/06/07/30363.html) but I've either
>> >  been misusing them, or they are not right for what I want to do.
>> >
>> >  If anyone knows how to get points and lines in the same panel for the two
>> >  different groups (probes/segments), I would love to hear about it.
>> >
>> >  If you further know how to use the 'segment' plot in panels for the
>> >  segments, I would really love to hear about it.
>>
>>
>> Well, panel.segments() draws segments, but you need your data in the
>>  form (x1, y1, x2, y2) for that. With your setup, it's probably easier
>>  to have lines with some NA-s inserted wherever you want line breaks.

That works perfectly!  I was just planning on reformating the data, but 
this makes life even easier!

Thanks!

Aaron



More information about the R-help mailing list