在for循环中打印到PDF

Sir*_*lem 21 pdf pdf-generation loops for-loop r

我想循环一个情节并将情节的结果放在一个PDF.

以下代码用于执行此操作:

这样做是循环3次,并从虹膜数据集绘制3个不同的图.然后它应该将其保存到C:/驱动器.该PDF文件被创建,但已损坏.

for(i in 1:3){
  pdf(paste("c:/", i, ".pdf", sep=""))
  plot(cbind(iris[1], iris[i]))
  dev.off()
}
Run Code Online (Sandbox Code Playgroud)

Rei*_*son 54

要在设备上绘制点阵图,需要打印通过调用其中一个点阵图形函数生成的对象.通常,在交互式使用中,如果未分配,R会自动打印对象.然而,在循环中,自动打印不起作用,因此必须安排要打印的对象,通常是将其包装print().

这是一个例子(请原谅我滥用公式表示法;-):

require(lattice)
for(i in 1:3) {
    pdf(paste("plot", i, ".pdf", sep = ""))
    print(xyplot(iris[,1] ~ iris[,i], data = iris))
    dev.off()
}
Run Code Online (Sandbox Code Playgroud)

这会在pdf设备上生成三个图.

  • 这是http://cran.r-project.org/doc/FAQ/R-FAQ.html#Why-do-lattice_002ftrellis-graphics-not-work_003f的一个特例(自从原文出版以来有点难以理解)海报给了我们可能不是他们试图运行的真实代码的东西) (2认同)