[R] legend in lattice densityplot
Chuck Cleland
ccleland at optonline.net
Wed Nov 29 19:12:23 CET 2006
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