Dear David, thanks for your help. I completely missed the point of trellis.device()... It is probably not the right thing for what I want to achieve. I do not want to open a device or plot the xyplot-object, I just want to create it and save it in a variable. I would like to *not* having to write "col = 1"... several times (as described before) in order to obtain black color for the lines, plot symbols etc.
I looked at the archive again and found a call to lattice.options(): library(lattice) xyplot. <- function(u) { lattice.options(default.theme = standard.theme(color = FALSE)) xyplot(u[,2]~u[,1]) } U <- matrix(runif(20),ncol=2) b <- xyplot.(U) xyplot(U[,2]~U[,1]) Now if I type "b", I get the plot without colors. However, since the function call changes the default.theme, the following call xyplot(U[,2]~U[,1]) is also in black/white. Is there a way I can *only* set the color to black/white within/for the function xyplot. ? Maybe I think of it in the wrong way and shouldn't try to change the color within the function; only when it is plotted. But then I can't simply type "b" and get the right thing.... which I would if I used the "col = 1" options in the call of xyplot Cheers, Marius On 2010-11-27, at 02:38 , David Winsemius wrote: > > On Nov 26, 2010, at 6:35 PM, Marius Hofert wrote: > >> Dear expeRts, >> >> 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, > > Wrong. Please look at the default for the "device" argument in the help page > of trellis.device(). > >> 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... >> >> Cheers, >> >> Marius >> >> library(lattice) >> > > Just take the trellis.device() line out of that function. Or specify a proper > device call as an argument to device= .... > >> xyplot. <- function(u) { > # trellis.device(color = FALSE) >> >> xyplot(u[,2]~u[,1]) >> } >> >> U <- matrix(runif(20),ncol=2) >> >> b <- xyplot.(U) > > str(b) > >> > > > > David Winsemius, MD > West Hartford, CT > ______________________________________________ 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.