Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image 如何在R中为每个绘图代码生成多个文件格式?_Image_R_Plot - Fatal编程技术网

Image 如何在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调用按顺序排列,但只生成了最下面

我使用Github markdown来记录我对R的数据分析。当我绘制图时,我使用:

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个版本/文件:

  • myplot.png
  • myplot.jpeg
  • myplot.pdf

  • @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()