循环没有完成保存pdf

时间:2014-01-24 00:10:19

标签: r ggplot2

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

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

          some ggplot operations...

    dev.off()

如果我手动为我想绘制的所有数据子集执行此操作,这本身就有效。如果我在一个循环中尝试这个,PDF设备会保存很多“空”图片。

我不明白为什么这不会在循环中起作用。似乎循环不会等到情节被正确导出。

1 个答案:

答案 0 :(得分:12)

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

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.