循环没有完成保存pdf

use*_*046 1 r ggplot2

我正在写一个循环.循环的目的是创建许多图并将它们保存为PDF.选择我的数据子集后,我会执行以下操作:

    pdf("path to the desired filename", width = 16, height = 7)

          some ggplot operations...

    dev.off()
Run Code Online (Sandbox Code Playgroud)

如果我手动为我想绘制的所有数据子集做这个,这本身就有效.如果我在循环中尝试这个,PDF设备会保存很多"空"图片.

我不明白为什么这不会在循环中起作用.似乎循环不会等到绘图正确导出.

jlh*_*ard 13

这是一个常见问题.你需要print(...)在for循环中使用.

pdf("myfile.pdf")
for (i in 1:2) {
  ggplot(mpg, aes(x=cty, y=hwy))+geom_point()
}
dev.off()   #  myfile.pdf is empty (no pages)

pdf("myfile.pdf")
for (i in 1:2) {
  print(ggplot(mpg, aes(x=cty, y=hwy))+geom_point())
}
dev.off()   #  myfile.pdf has 2 pages.
Run Code Online (Sandbox Code Playgroud)