[R] Key titles in Lattice
Sundar Dorai-Raj
sundar.dorai-raj at pdf.com
Thu Jun 1 22:10:01 CEST 2006
Kuhn, Max wrote:
> Hi,
>
> I'm creating some lattice plots that have a key and I'd like to put a
> label on the key. The problem is that the text label for the key
> prevents the values of the group variables from being shown (see example
> below). I don't think that this is a feature, but I might be abusing the
> title arg for key.
>
> I'm using R Version 2.3.0 (2006-04-24) on Windows XP and lattice V0.13-8
>
> Thanks,
>
> Max
>
>
> library(lattice)
> testData <- expand.grid(
> A = letters[1:2],
> B = letters[3:4],
> C = letters[5:6])
> testData$y <- rnorm(dim(testData)[1])
>
> stripplot(
> y ~ A|B, data = testData,
> groups = C,
> panel = function(x, y, groups, subscripts)
> {
> group.values <- sort(unique(groups))
> for (i in seq(along=group.values))
> {
> id <- (groups[subscripts] == group.values[i])
> current.val <- group.values[i]
> panel.stripplot(x[id], y[id],
> jitter.data = FALSE, horizontal = FALSE,
> col = trellis.par.get()$superpose.symbol$col[i],
> pch = trellis.par.get()$superpose.symbol$pch[i])
> panel.linejoin(
> x[id], y[id], horizontal=F,
> col = trellis.par.get()$superpose.symbol$col[i],
> lty = trellis.par.get()$superpose.line$lty[i],
> lwd = trellis.par.get()$superpose.line$lwd[i])
> }
> },
> main = "Some Text",
> key = list(
> columns = 2,
> text=list(
> # comment the next line out to see
> # the values of the grouping variable
> title = "More Text",
> lab = letters[5:6]),
> lines=list(
> col = trellis.par.get()$superpose.symbol$col[1:2],
> lwd = trellis.par.get()$superpose.line$lwd[1:2],
> lty = trellis.par.get()$superpose.line$lty[1:2]),
> points = list(
> col = trellis.par.get()$superpose.symbol$col[1:2],
> pch = trellis.par.get()$superpose.symbol$pch[1:2])))
>
> ----------------------------------------------------------------------
> LEGAL NOTICE\ Unless expressly stated otherwise, this messag...{{dropped}}
>
Hi, Max,
I think you missed this in ?xyplot under the "key" arguement:
The '"text"' component has to have a character or expression
vector as its first component, and the length of this vector
determines the number of rows.
I don't see any documentation on "text" allowing a "title" element. If
you want to do what I think you want, try this key instead:
key = list(
columns = 2,
text=list(
c(paste("More Text", letters[5], sep = " "), letters[6])),
lines=list(
col = trellis.par.get()$superpose.symbol$col[1:2],
lwd = trellis.par.get()$superpose.line$lwd[1:2],
lty = trellis.par.get()$superpose.line$lty[1:2]),
points = list(
col = trellis.par.get()$superpose.symbol$col[1:2],
pch = trellis.par.get()$superpose.symbol$pch[1:2]))
It's not pretty, but you get idea. Perhaps others might have better
solutions.
--sundar
More information about the R-help
mailing list