2013-07-24 14 views
1

我有点迷失在knitr包装中。 我喜欢spin()函数,以便快速给出我的分析的全局视图,但我需要将一些非常重要的图表保存为单独的pdf(例如,我的文件的第8个图应保存为“Figure1.pdf”显示在报告中)。如何使用spin()编织器生成报告并在pdf中保存一些图片

当我写:

Some random code and plots... 

pdf('Figure1.pdf') 
plot(important plot) 
dev.off() 

Some random code and plots 

的重要情节自旋()后不显示在报告中,我想是在报告和PDF。

有什么办法吗?

感谢

+0

我很困惑;当然,当knitr编译文档时,它也会生成图表,它们应该出现在同一个目录中(保存嵌入的base64编码图像)。您使用哪种输出格式的报表? – baptiste

+0

出现在旋转的HTML编织器中必须抓取输出设备并创建** PNG **,然后将其包含在'spin'创建的HTML中。通过启动PDF设备,您已经篡改了该设备,因此您无法获得PNG。我无法想象如何生成PDF和PNG,而不需要在较低的级别连接到knitr的图形,这可能是可能的。 – Spacedman

+0

'dev'接受一个向量,所以你可以告诉knitr为任何给定的块产生pdf和png – baptiste

回答

5

spin()做保存所有地块,虽然它在默认情况下,PNG格式保存,因为参数spin(..., format = 'Rmd')(R降价使用PNG设备)的地块。

您也可以在R脚本中指定块选项:只需使用#+#-(例如,

#' Some random code and plots... 

#+ Figure1, fig.path='', dev=c('png', 'pdf') 
plot(important plot) 

#' Some random code and plots 

注意dev选项接受装置的矢量,作为@baptiste提及。

或者您使用Rnw格式,例如(你不需要指定dev

spin(..., format = 'Rnw') 

输出将胶乳/ PDF而不是HTML在这种情况下。

0

如果我理解这个问题,关闭设备后,重复的情节声明没有在报告中产生的重复工作了:

Some random code and plots... 

pdf('Figure1.pdf') 
plot(important plot) 
dev.off() 
plot(important plot) 

Some random code and plots