我正在写一个循环。循环的目的是创建许多图并将它们保存为PDF
。选择我的数据子集后,我会执行以下操作:
pdf("path to the desired filename", width = 16, height = 7)
some ggplot operations...
dev.off()
如果我手动为我想绘制的所有数据子集执行此操作,这本身就有效。如果我在一个循环中尝试这个,PDF
设备会保存很多“空”图片。
我不明白为什么这不会在循环中起作用。似乎循环不会等到情节被正确导出。
答案 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.