2010-06-18 78 views
6

我有一个脚本可以创建条形图,并在6条条形图写入屏幕时打开一个新窗口,并在必要时继续打开新的图形设备。 根据输入的不同,这给我留下了大量打开的窗口(图形设备),我想写入一个PDF文件。R:dev.copy2pdf,多个图形设备到单个文件,如何附加到文件?

考虑到我的Perl背景,我决定遍历不同的图形设备,逐一打印出来。我想继续追加到一个PDF文件,但我不知道如何做到这一点,或者如果这是可能的。我想,以避免R.循环:)

的代码我使用:

for (i in 1:length(dev.list()) 
{ 
dev.set(which = dev.list()[i] 
dev.copy2pdf(device = quartz, file = "/Users/Tim/Desktop/R/Filename.pdf") 
} 

但是,这是行不通的,因为它每次都会覆盖该文件。现在在R中有一个附加函数,就像Perl中的一样。这让我不断添加页面到现有的PDF文件?

还是有包含在图形窗口中的信息的对象,并不断添加新的图形设备到该对象并最终打印整个事情到一个文件的方式?

其他可能的解决方案我想过:

  1. 编写不同的PDF文件,创建后,将它们组合
  2. 复制在所有不同的窗口中的信息(在读甚至可能安装了正确的库?)到一个大的图形设备,然后打印到PDF文件。

回答

5

快速评论:

  1. 用它获取通过传递给pdf()onefile=TRUE参数,请参阅dev.copypdfpdf

  2. 作为一般规则,帮助页面,你会发现它更容易直接打开设备;再次见到help(pdf)

总之

所以,加onefile=TRUE给你打电话,你应该罚款,但考虑直接使用pdf()

+0

+1推你超过1000,并获得金牌[R徽章。 :) – Shane 2010-06-19 11:10:09

+0

感谢您的答案!我在那里完全走错了路。不过,我有问题,我的PDF()出口,我会做一个新的问题,我希望你能回答太:) – Timtico 2010-06-21 15:12:05

0

为了进一步阐述的可能性追加到PDF。虽然,多个图可以放在一个文件中,但事实证明它是不可能的或至少不是简单的真正附加一个pdf 一旦完成dev.off() - see here