[R] legend in lattice densityplot

Gabor Grothendieck ggrothendieck at gmail.com
Thu Nov 30 16:25:39 CET 2006


Yes  by using the lty suboption of superpose.line.
Here is a modification of the prior example to illustrate:
We also use lwd as well in this example.

set.seed(1)
DF <- data.frame(x = c(rnorm(100,1,2),rnorm(100,2,4),rnorm(100,3,6)),
       f = sample(c("A","B","C","D","E"),300,replace=TRUE))
library(lattice)
densityplot(~ x, DF, groups = f, auto.key = TRUE, plot.points = FALSE,
 par.settings = list(superpose.line = list(col = c(1,1,2,2), lty = 1:2,
 lwd = c(1,1,1,1,2))))


On 11/30/06, Albert Vilella <avilella at gmail.com> wrote:
> Can I combine colors and line types? For example, would it be possible
> to have 5 colors per 2 types of lines (continuous and dashed)?
>
> On 11/29/06, Chuck Cleland <ccleland at optonline.net> wrote:
> > Albert Vilella wrote:
> > > Are this legend colors correlated to the plot?
> >
> >   They are if you rely on the colors in
> >
> > trellis.par.get("superpose.line")$col
> >
> >   If you want different colors you might use trellis.par.set() to
> > temporarily change the colors:
> >
> > x <- c(rnorm(100,-2,1),rnorm(100,0,1),rnorm(100,2,1))
> > f <- rep(c("A","B","C"), each=100)
> > df <- data.frame(x,f)
> > library(lattice)
> >
> > oldpar <- trellis.par.get("superpose.line")$col
> >
> > trellis.par.set(superpose.line = list(col = heat.colors(3)))
> >
> > densityplot(~ x, groups = f, data = df,
> >                  plot.points=FALSE,
> >                  auto.key=TRUE)
> >
> > trellis.par.set(superpose.line = list(col = oldpar))
> >
> >   If you don't require points or lines in the key, you also could do
> > something like this:
> >
> > densityplot(~ x, groups = f, data = df,
> >                  plot.points=FALSE,
> >                  key = simpleKey(levels(df$f),
> >                                  lines=FALSE,
> >                                  points=FALSE,
> >                                  col=heat.colors(3)),
> >                  col=heat.colors(3))
> >
> >   To use your own colors without changing the trellis settings and to
> > get lines or points in the key, you probably need at least to use key =
> > simpleKey() rather than the auto.key argument, and you may need to look
> > into draw.key().  Other people on the list might know simpler approaches
> > for using your own colors in this situation.
> >
> > > If I do a:
> > >
> > > densityplot(~x, groups=f, plot.points=FALSE,
> > > auto.key=TRUE,col=heat.colors(5))
> > >
> > > I get different colors in the legend than the plot...
> > >
> > >
> > > On 11/29/06, Chuck Cleland <ccleland at optonline.net> wrote:
> > >> Albert Vilella wrote:
> > >> > Hi,
> > >> >
> > >> > I have a densityplot like this:
> > >> >
> > >> > x = c(rnorm(100,1,2),rnorm(100,2,4),rnorm(100,3,6))
> > >> > f = sample(c("A","B","C","D","E"),300,replace=TRUE)
> > >> > df=data.frame(x,f)
> > >> > library(lattice)
> > >> > attach(df)
> > >> > densityplot(~x, groups=f)
> > >> >
> > >> > And I want to add a legend with the colours for the factors. How can
> > >> I do that?
> > >> > How can I not have the dots of the distribution at the bottom, or at
> > >> > least, make them occupy less vertical space?
> > >>
> > >>   Change the last line to the following:
> > >>
> > >> densityplot(~x, groups=f, plot.points=FALSE, auto.key=TRUE)
> > >>
> > >> See ?panel.densityplot .
> > >>
> > >> > ______________________________________________
> > >> > R-help at 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
> > >> > and provide commented, minimal, self-contained, reproducible code.
> > >> >
> > >>
> > >> --
> > >> Chuck Cleland, Ph.D.
> > >> NDRI, Inc.
> > >> 71 West 23rd Street, 8th floor
> > >> New York, NY 10010
> > >> tel: (212) 845-4495 (Tu, Th)
> > >> tel: (732) 512-0171 (M, W, F)
> > >> fax: (917) 438-0894
> > >>
> > >
> >
> > --
> > Chuck Cleland, Ph.D.
> > NDRI, Inc.
> > 71 West 23rd Street, 8th floor
> > New York, NY 10010
> > tel: (212) 845-4495 (Tu, Th)
> > tel: (732) 512-0171 (M, W, F)
> > fax: (917) 438-0894
> >
>
> ______________________________________________
> R-help at 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
> and provide commented, minimal, self-contained, reproducible code.
>



More information about the R-help mailing list