[R] lattice: strange behavior (?) when using trellis.device(color=FALSE)

Gabor Grothendieck ggrothendieck at gmail.com
Sat Nov 27 13:42:09 CET 2010


On Fri, Nov 26, 2010 at 6:35 PM, Marius Hofert <m_hofert at web.de> wrote:
> I am not sure if I found a bug...
> I would like to create a function that itself creates a lattice plot without
> colors. Following http://www.mail-archive.com/r-help@r-project.org/msg64699.html
> I use trellis.device() to set the colors to FALSE. Whenever I call the minimal
> example below *with* trellis.device(), Quartz opens a window (I am working on a
> MAC), which it shouldn't, since I only want to create the plot, but do not intend
> to "print" it. Moreover, if I check the value of b, it prints the plot (which
> is correct) but still with colors.
> Without the trellis.device() call, it works fine (but of course the plot is
> again colored)...
> The reason why I would like to use trellis.device() within a function is that
> the plot contains a panel.function which contains many calls to panel.xyplot()
> and I do not want to write "col = 1" (e.g.) all the time...

Create a wrapper to xyplot that has the arguments preset to what you
want. Using the built in BOD data frame:

library(lattice)
f <- function() {
	xyplot. <- function(..., col = 1) xyplot(..., col = col)
	xyplot.(demand ~ Time, BOD)
}
b <- f()
b

The above works in this example but depending on the specifics of the
actual application you may need this instead:

xyplot.  <- function(..., col = 1) eval.parent(substitute(xyplot(...,
col = col))

-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com



More information about the R-help mailing list