2010-06-18 29 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