[R] lattice xyplot with bty="l"

Deepayan Sarkar deepayan.sarkar at gmail.com
Wed Sep 5 02:00:24 CEST 2007


On 9/4/07, Patrick Drechsler <patrick at pdrechsler.de> wrote:
> Hi,
>
> what is the correct way of removing the "top" and "right" axes
> completely from a lattice xyplot? I would like to have a plot similar
> to using the bty="l" option for traditional plots.

There is no direct analog (and I think it would be weird in a
multipanel plot). Combining a few different features, you can do:

library(grid)

xyplot(1:10 ~ 1:10, scales = list(col = "black", tck = c(1, 0)),
       par.settings = list(axis.line = list(col = "transparent")),
       axis = function(side, ...) {
           if (side == "left")
                grid.lines(x = c(0, 0), y = c(0, 1),
                           default.units = "npc")
           else if (side == "bottom")
                grid.lines(x = c(0, 1), y = c(0, 0),
                           default.units = "npc")
           axis.default(side = side, ...)
       })

-Deepayan


>
> An example:
>
> --8<---------------cut here---------------start------------->8---
> rm(list=c(ls()))
> library(lattice)
>
> y <- 1:10
> x <- y
>
> ## Traditional plot:
> plot(x, y, bty = "l")
>
> ## Lattice plot 1:
> xyplot(y ~ x,
>        panel = function(x, y, ...){
>          panel.xyplot(x, y, ...)
>          panel.axis(side = c("left", "bottom"))
>        }
>        )
>
> ## Lattice plot 2:
> xyplot(y ~ x,
>        ## This just tries to remove all y axes:
>        scales = list(y = list(draw = FALSE))
>        )
> --8<---------------cut here---------------end--------------->8---
>
> Thankful for any pointers,
>
> Patrick
>
> ______________________________________________
> 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