Thanks Elai, that did it! I never considered using any X11 options, as I'm on 
Windows, and in the docs I read it sounded like X11 options only pertained to 
the OSX/Linux/.. world. Thanks for your help, Doug

--- On Mon, 2/6/12, ilai <ke...@math.montana.edu> wrote:

From: ilai <ke...@math.montana.edu>
Subject: Re: [R] Multi-page PDF using dev.copy2pdf(filename, onefile=TRUE)?
To: "Doug Hill" <logic...@yahoo.com>
Cc: r-help@r-project.org
Date: Monday, February 6, 2012, 12:24 PM

Doug,
dev.copy2pdf closes the connection after it's "done", so onefile is
meaningless. To look at each plot before copy to a single pdf, you
could open a pdf(...) but revert between it and your graphic device:
graphics.off()
plot(1:7, 1:7)
x11c<- dev.cur()       # your current graphics device
pdf(file="test.pdf")
dev.set(which=x11c)   # back from pdf
dev.copy()                  # copy
dev.set(which=x11c)    # back to graphic
plot(1:5, 1:5,col=2,pch=2)
dev.copy()
dev.set(which=x11c)
# ...   etc. however many more plots
# don't forget to close the pdf device at the end:
dev.off(which=x11c+1)
# Both plots are in 'test.pdf'

Depending on your application you might be able to simplify things
with dev.next/dev.prev, or wrap this sequence into a little helper
function to be used in a loop.

Enjoy,
Elai


On Mon, Feb 6, 2012 at 6:44 AM, Doug Hill <logic...@yahoo.com> wrote:
> Hi all. I want to generate a sequence of n plots and save them into a single 
> PDF file, one plot per page. From the R docs and other sources I gather the 
> basic way to do this is save plot 1 into a file then append the 2:n plots to 
> the same file.
> This code shows my basic approach, but for some reason only the last plot is 
> saved into the pdf. I've tried different variations (e.g. using onefile only 
> in the second call, or only in the first), to no avail. The comments show 
> what I see if I step through the code one line at a time:
> scratch<-function() {
> graphics.off()
> plot(1:7, 1:7) # Opens a graphics window and displays a 7-point plot in it, 
> as expected
> dev.copy2pdf(file="test.pdf", onefile=TRUE) # I see the 7-point plot in Adobe 
> reader, as expected
> plot(1:5, 1:5) # Overwrites in the graphics window the 7-point plot with a 
> 5-point, as expected
> dev.copy2pdf(file="test.pdf", onefile=TRUE) # Overwrites test.pdf so that it 
> contains only the 7-point plot
> }
> A couple things:
> (1) The reason I don't just use something like pdf(filename) plot(...) 
> plot(...) dev.off() is that I also want to see the plots before they're saved 
> (I pause after each plot() command). But according to the docs for 
> dev.copy2pdf(), that function accepts the same args as pdf() does, including 
> onefile.
> (2) I wrap my code in a function to be able to use it in the StatEt debugger 
> in Eclipse.
> If you know what I'm doing wrong, or know of a different/better way, advise 
> away! Thanks, Doug
>        [[alternative HTML version deleted]]
>
>
> ______________________________________________
> 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.
>

        [[alternative HTML version deleted]]

______________________________________________
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