R 保存重复功能生成的绘图

R 保存重复功能生成的绘图,r,ggplot2,scatter-plot,ggsave,R,Ggplot2,Scatter Plot,Ggsave,目前,我正在寻找一个解决方案,以保存72个绘图到一个PDF文件。 这72个图是通过功能和下面的重复代码创建的 ID代表我的数据集中的一个人。此人的ID上有多行数据。要转到下一个人,我使用ID=ID+1 使用下面的代码,我创建了一个PDF文件,但这是一个有72页的PDF文件。我希望每行有4个绘图。nrow=4这个概念中的某些东西,就像您在grid.arrange中使用的一样。最好每行4个,每页24个 pdf("plot1.pdf") repeat { ID = ID +

目前,我正在寻找一个解决方案,以保存72个绘图到一个PDF文件。 这72个图是通过
功能和下面的
重复代码创建的

ID代表我的数据集中的一个人。此人的ID上有多行数据。要转到下一个人,我使用ID=ID+1

使用下面的代码,我创建了一个PDF文件,但这是一个有72页的PDF文件。我希望每行有4个绘图。nrow=4这个概念中的某些东西,就像您在grid.arrange中使用的一样。最好每行4个,每页24个

pdf("plot1.pdf")
 repeat {
  ID = ID + 1
  print(ggplot(ID))
  if (ID == 72){
    break}}
dev.off()

我仍然不确定这是否是一个合法的解决方案,但至少现在它是固定的

显然,我在寻找这样的解决方案:

plot.list <- list()
for(i in 1:72){
  plot.list[[length(plot.list) + 1]] <- plot_utility(i)
}

grid1 <- grid.arrange(grobs = plot.list, ncol = 4)

ggsave("plot1.pdf", 
       plot = grid1, 
       device = "pdf", 
       scale = 2,
       width = 25, 
       height = 20, 
       units = c("cm")
)

plot.list您的问题在许多方面都是不可复制的,请阅读和(标签页顶部),了解如何使用示例数据和最小但完整的工作代码来改进问题。切线:虽然
重复
没有错,但对(ID中的x)打印(ggplot(x))执行
可能更直观(可能更安全)
,由于当
ID
s耗尽时,它将自动终止,因此,如果存在任何间隙,则没有风险,(对我来说)更易于阅读/理解,因此更易于维护。@r2evans这只是一个如何在PDF页面上并排获取导出的绘图的问题。我想提到repeat函数,以便知道我的方法是什么。当然,我可以提供一个完整的可复制示例,但我认为不需要它,因为问题是:在使用我的方法时,如何在PDF页面上并排获得导出的绘图(例如,在arrange.grid中为nrow=4)。如果您仍然需要一个可复制的示例,请参阅:(由我发布)您在问题中引用了
grid.arrange()
。。。有没有什么特别的原因让你不能在这里选择?通过
plot\u grid()
@chemdork123指定列数/行数的类似功能存在于其他软件包中,如
cowplot
,据我所知,您需要参考实际绘图以创建网格,例如:
plot1