我正在使用knitr
進行分析。我可以使用\SweaveOpts{dev=pdf}
以及\SweaveOpts{dev=png}
的png格式保存pdf格式的圖表。我有興趣在一次運行中以pdf和png格式保存圖形,但要交互地在最終文檔中使用pdf。任何建議將不勝感激。由於以pdf和png格式保存圖形,但在最終文檔中使用pdf文件
回答
來了真正的解決方案:
Knitr 0.3.9開始支持每塊多臺設備(現在,你必須從GitHub安裝);在你的情況下,你可以設置塊選項dev=c('pdf', 'png')
以獲得PDF和PNG文件。
這是一個使用ImageMagick將PDF文件轉換爲PNG的解決方案。當然,你必須先安裝ImageMagick的,並確保它的bin目錄在PATH
:
knit_hooks$set(convert = function(before, options, envir) {
# quit if before a chunk or no figures in this chunk
if (before || (n <- options$fig.num) == 0L) return()
# only convert pdf files
if (options$fig.ext != 'pdf') return()
# use ImageMagick to convert all pdf to png
name = fig_path() # figure filename
owd = setwd(dirname(name)); on.exit(setwd(owd))
files = paste(basename(name), if (n == 1L) '' else seq(n), sep = '')
lapply(files, function(f) {
system(sprintf('convert %s.pdf %s.png', f, f))
})
NULL
})
基本上這個鉤子一大塊後執行,並運行在所有PDF數字convert foo.pdf foo.png
。您可以使用它像
<<test-png, convert=TRUE>>=
plot(1); plot(2)
@
或者,如果你把所有的數字在一個單獨的目錄,你可以在該目錄中直接運行convert
(即不必調用system()
在R)。
這不是一個理想的解決方案,但應該工作。要使用R的本機png()
設備,您需要先在上述註釋中回答我的問題。
假設使用'Rnw'文件並生成pdf文檔:是否有一個選項來指定哪些文件將用於生成文檔?我有一個大量的圖形運行,並希望prearep它的高分辨率和低分辨率(即一個使用PNG和一個PDF)。 – radek 2013-11-11 15:05:42
@radek你可以用LaTeX技巧做到這一點:http://en.wikibooks.org/wiki/LaTeX/Importing_Graphics – 2013-11-11 18:43:40
感謝您的快速回答。我看到生成的'tex'文件沒有指定圖形的擴展名。像'\ DeclareGraphicsExtensions {.pdf}'這樣的東西只會產生pdf圖像報告嗎?然後 - 我仍然需要編譯兩個獨立的tex文件 - 一個帶有'pdf'選項,一個帶'png'? – radek 2013-11-11 20:13:35
- 1. 如何以.pdf格式保存工作文檔在C#中
- 2. 如何使用Java以Orbeon格式的PDF URL保存PDF文件
- 3. 軌+回形針保存圖片和DOC/PDF/TXT文件以及
- 4. 應用程序最終保存的PDF文件在ASP.net
- 5. PHPExcel創建/樣式/保存PDF文檔
- 6. 在PDF中添加pdf表格文檔
- 7. 在wpf中保存xps文檔爲.pdf
- 8. 保存PDF文件
- 9. 保存PDF文件
- 10. 保存PDF格式但不能打印文件
- 11. iphone PDF格式保存到文檔存儲
- 12. 將OCaml圖形制作成的圖形保存在EPS和PDF文件中
- 13. 從在線IDE將Matlab/Octave圖表保存爲pdf/png格式?
- 14. 使用webbrowser在vb.net保存PDF文件
- 15. 用Javascript創建PNG圖像和文本的PDF格式嗎?
- 16. 用Chickenfoot保存PDF文件
- 17. md,pdf和html格式的文檔
- 18. PDF格式的Apache軟件文檔
- 19. 以圖形方式將圖章添加到PDF文檔
- 20. 使用savePlot以pdf格式保存圖例時截圖
- 21. Ghostscript的轉換PDF文本,並保持PDF文件表格式
- 22. 如何將pdf文件保存在文檔目錄中
- 23. 如何以PDF格式發送PDF格式的文件?
- 24. 是否可以將pdf格式圖像插入reportlab生成的pdf文檔中?
- 25. 以PDF格式保存二進制文件
- 26. 使目前的PDF文檔中的文本,但無形的
- 27. 保存嵌入.pdf不是.pdf文件
- 28. 保存PDF文檔的名稱基於文件中的文本
- 29. 格式不正確的pdf文檔要求保存更改
- 30. Crystal Reports可以生成PDF/A文件格式的文檔嗎?
您是否有每個塊有多個圖塊?如果你不這樣做,我可以通過一個塊鉤子向你展示一個簡單的方法;如果這樣做,我將需要更改內部代碼以允許每個塊有多個設備,例如, 'dev = c('pdf','png')'。 – 2012-03-12 01:14:42
謝謝@熠輝的評論。是的,我確實有每個塊有多個地塊。 – MYaseen208 2012-03-12 01:50:26
下面的答案是一個通用的解決方案,它不需要每個塊都有一個圖,我會考慮如何在多設備的knitr中添加原生支持;也許這可以在knitr 0.4中完成。 – 2012-03-12 02:13:52