[R] other than default labels in lattice plot

Deepayan Sarkar deepayan at stat.wisc.edu
Thu Feb 24 18:19:23 CET 2005


On Thursday 24 February 2005 08:03, Petr Pikal wrote:
> Dear all
>
> I solved a problem of customised labels on strips and boxes in bwplot
> by this construction.
>
> > bbb <- bwplot(zavoj ~ typmleti | pu)
> > bbb$condlevels$pu <- c("Povrchová úprava", "Bez PU")
> > bbb$x.limits <- c("Mleto", "Mleto a sítováno", "Nemleto")
> > bbb
>
> but I wonder if some other easy option exist. Let say something like
>
> bwplot(zavoj~typmleti | pu,
> some advanced stuff like
> box.labels=c("Mleto", "Mleto a sítováno", "Nemleto"),
> strip.labels =  c("Povrchová úprava", "Bez PU")
> )

I think the most natural way to do this would be to change the labels of 
the factor levels directly. If you don't want to do this to your 
original data, you can do it on the fly as follows:


relabel <- function(x, labels)
{
    stopifnot(is.factor(x))
    levels(x) <- labels
    x
}

y <- rnorm(100)
x <- gl(3, 1, 100)
g <- gl(2, 1, 100)

bwplot(y ~ relabel(x, c("Mleto", "Mleto a sítováno", "Nemleto")) |
       relabel(g, c("Povrchová úprava", "Bez PU")))


Of course, you can also do it your way:

bwplot(y ~ x | g,
       xlim = c("Mleto", "Mleto a sítováno", "Nemleto"),
       strip = strip.custom(factor.levels =
       c("Povrchová úprava", "Bez PU")))

This use of 'xlim' is a short-hand, the traditional way of changing the 
x-axis labels is 

       scales = list(x = list(labels = c("Mleto", "Mleto a sítováno",
                                         "Nemleto")))

Changing strip labels is more complicated if you have more than one 
conditioning variable.

Deepayan




More information about the R-help mailing list