Re: [R] [newbie] separating plot output from debug output
Tom Roche Wed, 15 Feb 2012 17:43:05 -0500
>> 1 I'm plotting to PDF, so everytime I dev.off() creates a new file,
>> and I want everything in one file (as does my boss :-)
>> 2 I'm doing the work on a cluster, where I very much do not have
>> root, and which has a fairly minimal set of installed packages,
>> so I can't just call something external like 'pdftk' to merge the
>> PDFs as I go.
>> 3 As part of the processing, I printf status and debug messages,
>> which I don't want in my PDF(s).
ilai Wed, 15 Feb 2012 16:34:34 -0700
> [Until] dev.off(), all plots will be sent to the open graphical
> device [which] usually doesn't impact behavior of other output
Doh! I totally missed that, and was having PDF problems for other
reasons. And thanks for the self-contained example (slightly extended
by me):
pdf.reader -> "xpdf"
pdf(file='fooout.pdf')
hist(x <- rnorm(100))
y <- sin(x)
print(str(y))
cat(y,file='fooout.txt')
plot(x,y)
dev.off()
system(paste(pdf.reader, 'fooout.pdf'))
system('cat fooout.txt')
thanks again, Tom Roche
__
[email protected] 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.
Re: [R] [newbie] separating plot output from debug output
If you don't dev.off(), all plots will be sent to the open graphical
device. That usually doesn't impact behavior of other output types:
pdf(file='fooout.pdf')
hist(x <- rnorm(100))
y <- sin(x)
print(str(y))
cat(y,file='fooout.txt')
plot(x,y)
dev.off()
Hope this helps
On Wed, Feb 15, 2012 at 3:43 PM, Tom Roche wrote:
>
> I'm attempting to refactor an R script that does a lot of plotting,
> among other things. Ideally I'd like to do something like
>
> setup # does pdf(...)
> for each part of input {
> plot(process(part))
> }
> cleanup # does dev.off()
>
> but have problems:
>
> 1 I'm plotting to PDF, so everytime I dev.off() creates a new file,
> and I want everything in one file (as does my boss :-)
> 2 I'm doing the work on a cluster, where I very much do not have root,
> and which has a fairly minimal set of installed packages, so I can't
> just call something external like 'pdftk' to merge the PDFs as I go.
>
> 3 As part of the processing, I printf status and debug messages, which
> I don't want in my PDF(s).
>
> The solutions I can imagine are
>
> 1 Append to a single PDF, but I understand this is not feasible, no?
>
> 2 Create a buncha PDFs with code above, download them to my laptop,
> merge them to a single PDF, upload it. Feasible but annoying and
> kludgey.
>
> 3 Separate processing from plotting, e.g.,
>
> setup # but not pdf(...)
> for each part of input {
> write(process1(part), intermediate)
> }
> pdf(...)
> for each part of intermediate {
> plot(process2(part))
> }
> cleanup # does dev.off()
>
> Again, feasible but kludgey.
>
> 4 No status and debug messages. I hope to be that good someday :-)
>
> Am I missing something? Are there clean solutions to this problem?
>
> TIA, Tom Roche
>
> __
> [email protected] 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.
__
[email protected] 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.
[R] [newbie] separating plot output from debug output
I'm attempting to refactor an R script that does a lot of plotting,
among other things. Ideally I'd like to do something like
setup # does pdf(...)
for each part of input {
plot(process(part))
}
cleanup # does dev.off()
but have problems:
1 I'm plotting to PDF, so everytime I dev.off() creates a new file,
and I want everything in one file (as does my boss :-)
2 I'm doing the work on a cluster, where I very much do not have root,
and which has a fairly minimal set of installed packages, so I can't
just call something external like 'pdftk' to merge the PDFs as I go.
3 As part of the processing, I printf status and debug messages, which
I don't want in my PDF(s).
The solutions I can imagine are
1 Append to a single PDF, but I understand this is not feasible, no?
2 Create a buncha PDFs with code above, download them to my laptop,
merge them to a single PDF, upload it. Feasible but annoying and
kludgey.
3 Separate processing from plotting, e.g.,
setup # but not pdf(...)
for each part of input {
write(process1(part), intermediate)
}
pdf(...)
for each part of intermediate {
plot(process2(part))
}
cleanup # does dev.off()
Again, feasible but kludgey.
4 No status and debug messages. I hope to be that good someday :-)
Am I missing something? Are there clean solutions to this problem?
TIA, Tom Roche
__
[email protected] 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.

