[R] coloring individual points in lattice xyplot

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Jul 5 05:05:40 CEST 2006


On 7/4/06, Gabor Grothendieck <ggrothendieck at 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 at gmail.com> wrote:
> > On 7/4/06, Deepayan Sarkar <deepayan.sarkar at gmail.com> wrote:
> > > On 7/4/06, Gabor Grothendieck <ggrothendieck at 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/



More information about the R-help mailing list