可能重复:
从R函数中生成多个图形
发生在我身上的奇怪事情:以下代码无法打印到pdf设备:
outnames <- c("1.pdf", "2.pdf")
for (n in outnames){
pdf(n)
qplot(1:10)
dev.off()
}
Run Code Online (Sandbox Code Playgroud)
即使生成了pdf文件,也不会打印任何内容到pdf.然而,
pdf(outnames[2])
qplot(1:10)
dev.off()
Run Code Online (Sandbox Code Playgroud)
会很好地工作.知道为什么吗?转载于R 2.11.1.
Rei*_*son 11
@Dirk解释了为什么会发生这种情况(关闭自动打印),但是打开设备,在设备上生成绘图,关闭设备的替代方法是ggsave().例如:
p1 <- qplot(1:10)
ggsave("p1.pdf", plot = p1)
Run Code Online (Sandbox Code Playgroud)
或通过循环:
outnames <- c("1.pdf", "2.pdf")
for (n in outnames){
p2 <- qplot(1:10)
ggsave(n, plot = p2)
}
Run Code Online (Sandbox Code Playgroud)
最后,我们得到了我们要求的所有生成的图.
> list.files(pattern = ".pdf$")
[1] "1.pdf" "2.pdf"
[3] "p1.pdf"
Run Code Online (Sandbox Code Playgroud)