[R] legend in lattice densityplot

Albert Vilella avilella at gmail.com
Thu Nov 30 16:11:27 CET 2006


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
>



More information about the R-help mailing list