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 <[EMAIL PROTECTED]> 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

______________________________________________
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.

Reply via email to