dev.off() inside a function & other glitches
Thanks to all who replied on list and to me directly. You are right, FAQ 7.22 is the answer. For any others who get caught by this it's important to print(..) a plot with a function, not just create it, i.e. print( xyplot(... ) ) not just xyplot(... ) ..otherwise it doesn't necessarily get sent to the opened device. Michael
On 2 Jul 2008, at 01:06, Deepayan Sarkar wrote:
On 7/1/08, Michael Hopkins <michael.hopkins at hopkins-research.com> wrote:
Hi R people
I am using a function to create a pdf device, then send a lot of
plots
to it in a loop then a last lattice xyplot (itself within a function)
outside the loop and finally call dev.off() to write to the file.
This works well apart from the fact that the last plot does not get
sent to the file unless I comment out dev.off() and then apply it in
the console afterwards instead:
plot_stuff( ...); dev.off()
The device is opened like this:
pdf( paste( var_string, ".pdf", sep="" ), onefile=TRUE,
paper="a4r",
width=9, height=6.5 )
Also, if I try to send two different xyplots after the loop only the
last one ever gets written to the file, whether or not I apply the
dev.off() trick above.
Any thoughts on why this stuff happens and best ways to avoid it are
appreciated.
This sounds like FAQ 7.22: http://cran.us.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f The dev.off() issue is most likely a red herring; the important bit is that the xyplot() call was not the last expression in your function. -Deepayan
Web: http://www.hopkins-research.com/ Office: +44 (O)1732 228844 Mobile: +44 (O)7813 467381