On Fri, Apr 8, 2011 at 6:10 AM, Benjamin Tyner <bty...@gmail.com> wrote: > Hello, > > In lattice, is there a way to customize the axis.line by panel? For example, > say I have two panels: > > Data <- data.frame(x=runif(10), > y=rnorm(10), > f=gl(2,5) > ) > > library(lattice) > plot <- xyplot(y ~ x|f, > data = Data, > layout=c(2,1), > scales=list(relation="free",alternating=FALSE), > par.settings = list(axis.line=list(lwd=0)) > ) > > and desire lwd=0 for one panel and lwd=1 for the other. Can it be done?
No. > If not, can the desired behavior be mimicked by explicit use of (say) > grid::grid.rect() within the panel function? Yes, but using the axis function would be better as panel function clips by default (so technically only half of each line would be visible). xyplot(y ~ x|f, data = Data, layout=c(2,1), scales=list(relation="free",alternating=FALSE), par.settings = list(axis.line=list(col = "transparent")), axis = function(side, ...) { ## axis is called 4 times per panel; draw box only once if (side == "bottom") { box.lty <- if (panel.number() %in% c(1)) # add others as needed 0 else 1 grid::grid.rect(gp = grid::gpar(lty = box.lty)) } axis.default(side = side, ...) }) -Deepayan ______________________________________________ R-help@r-project.org 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.