[R] panel.linejoin groups
Deepayan Sarkar
deepayan.sarkar at gmail.com
Fri Sep 23 20:01:07 CEST 2005
On 9/23/05, Erin Berryman <berr0179 at umn.edu> wrote:
> Dear R community,
>
> I am still new to R, but I am attempting to use it for (hopefully) all
> my plotting needs. I have been using lattice and Hmisc for most plots
> so far successfully, but I need help creating a plot I desire for some
> new data I have.
> This data frame consists of the same type of measurement (Eh) for 27
> different locations. I have 8000+ measurements for each location, and
> my datalogger organizes the output like this:
>
> Date A1L A2L A3L
> 2005-07-14 22:00 208.1 -178.5 196.8
> 2005-07-14 22:10 207.9 -184.3 200.0
>
> Now I'm having trouble plotting A1L, A2L, A3L on the same plot as a
> function of Date. I thought I would try panel.linejoin, like so:
>
> xyplot(data=redox2, A1L + A2L + A3L ~ Date,
> panel=function(x,y,...){panel.linejoin(x,y,horizontal=F,col=1,...)},
> scales=list(x=list(tick.number=10)))
>
> But of course, what I get is the mean of the measurements from those
> three columns plotted as one line, when what I want is a separate line
> for each column of data. Do I need to define "groups" somehow to get
> separate lines? If so, how do I define groups based on membership in
> different columns? Or do I just need to reorganize my data to make it
> work, like this:
>
> Date Location Eh
> 2005-07-14 22:00 A1L 208.1
> 2005-07-14 22:00 A2L -178.5
>
> Then I can define groups=Location, and it would work. But it would be
> good to know if I can make the data work as is - because I have many
> many more datasets that are structured this way.
Yes, simply supply 'panel.groups' instead of 'panel'
panel.groups = function(x,y,...) { panel.linejoin(x,y,horizontal=F,col=1,...) },
panel.linejoin doesn't know anything about groups, and has to be used
through panel.superpose (which does). However, the more obvious
approach seems to be
xyplot(A1L + A2L + A3L ~ Date, data=redox2,
type = 'l',
scales=list(x=list(tick.number=10)))
Does that not work? panel.linejoin is meant for cases where several
observations need to be summarized by a single number (mean, median,
etc).
BTW, it's not a good idea to have anything other than the formula as
the first argument to xyplot etc.
Deepayan
More information about the R-help
mailing list