Christoph Lehmann
2005-Sep-16 12:55 UTC
[R] savePlot(type="wmf") in loop fails, since too fast
hi working with R-2.1.1 on winxp, in a loop I draw to a trellis.device which takes some time. After the drawing I call savePlot(). it seems, the loop is too fast for the savePlot() call to finish. Is there any solution for such a problem? Calling the same steps outside the loop, works fine. many thanks christoph --
Christoph Lehmann <christoph.lehmann <at> gmx.ch> writes:> working with R-2.1.1 on winxp, in a loop I draw to a trellis.device which > takes some time. After the drawing I call savePlot(). > it seems, the loop is too fast for the savePlot() call to finish.I virtually see the computer being overrun by her/his/its own plotting function, all semaphores blinking like mad... When in a loop, you must use print() to output the plot. Easy to forget, I remember that even Douglas Bates once was close to calling Deepayan who was far away in India one hour before the presentation. library(lattice) for (i in 1:10) { x = rnorm(10) y = rnorm(10) p = xyplot(x~y,main=paste("Plot",i)) print(p) savePlot(paste("Plot",i, sep="")) } But as far I know, savePlot anyway is not the preferred methode to print trellis, is just just happens to work somehow. Here is my preferred method: print everything to a postscript file (nice one-file solution), and extract to emf-file with pstoedit/Ghostgum when you really need it. trellis.device("postscript",file="Myplots.ps",color = T) for (i in 1:10) { x = rnorm(10) y = rnorm(10) p = xyplot(x~y,main=paste("Plot",i)) print(p) } dev.off() Dieter