2

我正在尝试同时打印到两个设备。大多数情况下,我可以创建我想要的输出,但我不确定如何更改par$mfrow第一个设备的设置。

pdf(file="test.all.pdf",width=7,height=10,pointsize=12,bg="white",paper="letter",pagecentre=T)
par(mfrow=c(3,2))

for(i in 1:12){
  temp <- rnorm(500,i,1)
  pdf(paste0("test_",i,".pdf"))
  dev.control(displaylist="enable")
  hist(temp)
  dev.copy(which=2)
  dev.off(which=3)
}

graphics.off()

我正在尝试为每个图获取单独的 .pdf 文件,然后是每页 6 个图的组合 .pdf 文件。相反,我只是得到一个组合的 .pdf 文件,每页有 1 个图。

我根据这篇文章构建了我的代码。

4

1 回答 1

0

像@DWin 一样,我认为这不可能如你所问。dev.copy() 复制设备区域,而不是绘图,这就是为什么我认为它不能仅仅根据一组不同的 par() 参数放置绘图。

在我看来,它也似乎更干净,更容易阅读和写作阅读以绘制每个情节我害怕两次。如果绘制绘图的代码非常复杂,请事先将其转换为函数。

mycomplicatedPlot <- function(x, ...){
    hist(x,...)
    abline(v=mean(x))
    abline(v=quantile(x, probs=c(0.025, 0.975)), lty=2, col="red")
}

pdf(file="test.all.pdf",width=7,height=10,pointsize=12,bg="white",paper="letter",pagecentre=T)
    par(mfrow=c(3,2))

    for(i in 1:12){
      temp <- rnorm(500,i,1)
      pdf(paste0("test_",i,".pdf"))
          mycomplicatedPlot(temp, main=i)
      dev.off()
    mycomplicatedPlot(temp, main=i)
    }
dev.off()
于 2013-04-13T06:49:55.953 回答