From: Gabor Grothendieck <ggrothendieck_at_gmail.com>

Date: Wed 05 Jul 2006 - 14:05:08 EST

}

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Jul 05 14:09:06 2006

Date: Wed 05 Jul 2006 - 14:05:08 EST

OK. It looks like I need to go to the lower level llines and lpoints to do this. I wrote a panel routine, mypanel, and it seems to work (see below); however, currently it assumes types and cols are in the global environment or at least somewhere where they will be found.

- Is it somehow possible to stick these into some structures set up by lattice already and then retrieve them from lattice from within mypanel?
- Any other improvements to the example below?

mypanel <- function(x, y, subscripts, groups, ...) {

for(g in 1:nlevels(groups)) { idx <- g == groups xx <- x[idx]; yy <- y[idx]; ccols <- cols[subscripts][idx] if (any(idx)) { switch(types[g], p = lpoints(xx, yy, col = ccols), l = llines(xx, yy, col = ccols), o = { lpoints(xx, yy, col = ccols) llines(xx, yy, col = ccols) }) } }

}

x <- 1:10

y <- cbind(y1 = x, y2 = x+1)

cols <- c(rep(1,10), 1:10)

types <- c("o", "p")

xyplot(y ~ c(x,x), groups = factor(col(y)), type = types, panel = mypanel)

On 7/4/06, Deepayan Sarkar <deepayan.sarkar@gmail.com> wrote:

> On 7/4/06, Gabor Grothendieck <ggrothendieck@gmail.com> wrote:

*> > I can get the types to work or the colors but not both:
**>
**> Sorry if I wasn't clear, but I didn't mean that you could use
**> panel.superpose[.2] to do what you wanted. I only meant that you could
**> use it as a template that may help you to write your own panel
**> function. What you want is not possible with tools available in
**> lattice.
**>
**> Deepayan
**>
**> > # this gets the types right but not the colors
**> > library(lattice)
**> > x <- 1:10
**> > y <- cbind(y1 = x, y2 = x+1)
**> > cols <- c(rep(1,10), 1:10)
**> > xyplot(y ~ c(x,x), groups = col(y), type = c("o", "p"),
**> > panel = function(x, y, subscripts, groups, ...)
**> > panel.superpose.2(x, y, subscripts, groups, col = cols[subscripts], ...)
**> > )
**> >
**> >
**> > # this gets the colors right but not the types
**> > library(lattice)
**> > x <- 1:10
**> > y <- cbind(y1 = x, y2 = x+1)
**> > cols <- c(rep(1,10), 1:10)
**> > xyplot(y ~ c(x,x), groups = col(y), type = c("o", "p"),
**> > panel = function(x, y, subscripts, groups, ...)
**> > panel.xyplot(x, y, col = cols[subscripts], ...)
**> > )
**> >
**> >
**> > On 7/4/06, Gabor Grothendieck <ggrothendieck@gmail.com> wrote:
**> > > On 7/4/06, Deepayan Sarkar <deepayan.sarkar@gmail.com> wrote:
**> > > > On 7/4/06, Gabor Grothendieck <ggrothendieck@gmail.com> wrote:
**> > > > > If I wish to color groups in xyplot I can do this:
**> > > > >
**> > > > > library(lattice)
**> > > > > x <- 1:10
**> > > > > y <- cbind(x, x+1)
**> > > > > xyplot(y ~ rep(x,2), group = col(y), col = 1:2)
**> > > > >
**> > > > > How do I color different points differently within a group.
**> > > > >
**> > > > > For example, I want to produce this plot (except that I only
**> > > > > want to have two groups, not 11):
**> > > > >
**> > > > > xyplot(y ~ rep(x,2), group = c(rep(1, 10), 2:11), col = 1:11)
**> > > > >
**> > > > > I am thinking of something like this (although
**> > > > > this does not work, its just to get the idea across):
**> > > > >
**> > > > > xyplot(y ~ rep(x,2), group = col(y), col = list(1, 2:11))
**> > > > >
**> > > > > where, in general, I have a list with one component per group
**> > > > > whose elements are scalars to color the whole group or
**> > > > > vectors one color per point in the group. I don't know
**> > > > > ahead of time what the list is.
**> > > > >
**> > > > > I am looking for a general approach to this within the lattice
**> > > > > xyplot plot framework; the above is just an example.
**> > > >
**> > > > The general approach is to write your own panel function. For a
**> > > > possible template, look at the functions panel.superpose and
**> > > > panel.superpose.2 and how they handle the 'type' argument.
**> > > >
**> > > > Deepayan
**> > > >
**> > >
**> > > There is no example in ?panel.superpose. Do you think you
**> > > could provide an example for the situation in my post?
**> > >
**> > > I have done quite a bit of RSiteSearch'ing and googling prior to
**> > > posting and all the examples I found had colors that depended
**> > > on the group, none addressed the situation in my post -- i.e.
**> > > coloring individual points within groups.
**> > >
**> >
**>
**>
**> --
**> http://www.stat.wisc.edu/~deepayan/
**>
*

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Wed Jul 05 14:09:06 2006

Archive maintained by Robert King, hosted by
the discipline of
statistics at the
University of Newcastle,
Australia.

Archive generated by hypermail 2.1.8, at Thu 06 Jul 2006 - 04:17:24 EST.

*
Mailing list information is available at https://stat.ethz.ch/mailman/listinfo/r-help.
Please read the posting
guide before posting to the list.
*