Image 如何在R中为每个绘图代码生成多个文件格式?
我使用Github markdown来记录我对R的数据分析。当我绘制图时,我使用:Image 如何在R中为每个绘图代码生成多个文件格式?,image,r,plot,Image,R,Plot,我使用Github markdown来记录我对R的数据分析。当我绘制图时,我使用: jpeg("file_name.jpg") plot(...) dev.off() 要将打印保存为jpeg格式,然后将其嵌入并显示在标记文档中,请执行以下操作: !(file_name.jpg) 但是,我还需要为最终出版物制作一份绘图的pdf。目前,我使用pdf(“file\u name.pdf”)重新编写了整个绘图代码,但这会导致大量基本重复的代码 我尝试过将jpeg和pdf调用按顺序排列,但只生成了最下面
jpeg("file_name.jpg")
plot(...)
dev.off()
要将打印保存为jpeg格式,然后将其嵌入并显示在标记文档中,请执行以下操作:
!(file_name.jpg)
但是,我还需要为最终出版物制作一份绘图的pdf
。目前,我使用pdf(“file\u name.pdf”)
重新编写了整个绘图代码,但这会导致大量基本重复的代码
我尝试过将jpeg
和pdf
调用按顺序排列,但只生成了最下面的调用
是否有一种方法可以在一次代码运行期间从同一代码生成
jpeg
和pdf
文件?为什么不使用knitr
?例如:
```{r myplot,fig.width=7, fig.height=6,dev=c('png','pdf','jpeg')}
plot(cars)
```
这将创建同一绘图的3个版本/文件:
@agstudy的答案很聪明。我认为,规范的答案是,如果您有大量重复代码,您可以创建一个小实用程序函数并运行两次:
tmpplotfun <- function() { ... lots of plot code ... }
pdf(...)
tmpplotfun()
dev.off()
jpeg(...)
tmpplotfun()
dev.off()
tmpplotfun或者您可以使用dev.copy
:
plot(cars)
dev.copy(jpeg, "cars.jpeg")
dev.off()
dev.copy(pdf, "cars.pdf")
dev.off()
如果您愿意使用ggplot
,可以保存一个绘图并使用print
调用它GG顺便说一句,对于位图版本的统计图形,通常(尽管不总是)使用png()
比使用jpeg()
更好,除非你有像照片一样的图像…@BenBolker谢谢你的提示。我只是用jpeg
在Github中查看,但是png
图像看起来确实更好。
plot(cars)
dev.copy(jpeg, "cars.jpeg")
dev.off()
dev.copy(pdf, "cars.pdf")
dev.off()