无法打印到pdf ggplot图表

时间:2011-01-26 22:59:17

标签: r ggplot2

  

可能重复:
  Generate multiple graphics from within an R function

发生在我身上的奇怪事情:以下代码无法打印到pdf设备:

outnames <- c("1.pdf", "2.pdf")
for (n in outnames){
    pdf(n)
    qplot(1:10)
    dev.off()
}
即使生成了pdf文件,

也不会向pdf打印任何内容。然而,

pdf(outnames[2])
qplot(1:10)
dev.off()

将完美地运作。知道为什么吗?转载于R 2.11.1。

2 个答案:

答案 0 :(得分:35)

Gappy,闻起来像FAQ 7.22 - 所以请尝试print(qplot(1:10))

答案 1 :(得分:10)

@Dirk解释了为什么会发生这种情况(关闭自动打印),但打开设备,在设备上生成绘图,关闭设备的替代方法是ggsave()。例如:

p1 <- qplot(1:10)
ggsave("p1.pdf", plot = p1)

或通过循环:

outnames <- c("1.pdf", "2.pdf")
for (n in outnames){
    p2 <- qplot(1:10)
    ggsave(n, plot = p2)
}

最后,我们得到了我们要求的所有生成的图。

> list.files(pattern = ".pdf$")
[1] "1.pdf"                  "2.pdf"                 
[3] "p1.pdf"