R 设置并保存要稍后显示的GGPLOT

R 设置并保存要稍后显示的GGPLOT,r,ggplot2,R,Ggplot2,我有一堆代码,它们通过一堆数据循环生成一系列摘要指标。我还想生成一系列绘图,然后将其放入我在循环外选择的网格中。这在R中可能吗 这里有一个非常简单的例子来说明我的意思 it = 0 while (it < 5){ myX = runif(10) myY = runif(10) df = data.frame(x,y) plt[it] = ggplot(data = df, aes(myX, myY)) + geom_point(size = 2, color = "

我有一堆代码,它们通过一堆数据循环生成一系列摘要指标。我还想生成一系列绘图,然后将其放入我在循环外选择的网格中。这在R中可能吗

这里有一个非常简单的例子来说明我的意思

it = 0
while (it < 5){
  myX = runif(10)
  myY = runif(10)
  df = data.frame(x,y)
  plt[it] = ggplot(data = df, aes(myX, myY)) + geom_point(size = 2, color = "blue")
  it = it + 1
}  
it=0
而(它<5){
myX=runif(10)
myY=runif(10)
df=数据帧(x,y)
plt[it]=ggplot(数据=df,aes(myX,myY))+geom_点(大小=2,color=“蓝色”)
it=it+1
}  
然后我想把plt组织成一个网格

(虽然这似乎没有产生情节,但不确定原因)

然后,我可以通过调用plt[2]或其他方式显示每个图,将它们放入网格中,组织它们等等。我对ggplot非常陌生,只是一个基本的R用户,所以如果我错过了显而易见的东西,我深表歉意。甚至不知道用什么语言来搜索这个


也很高兴被告知这是一个糟糕的方法,有一个更好的方法来创建情节。我希望在循环之外执行此操作,因为我希望在决定如何排列结果之前检查结果。

您可以将结果存储在列表中。要更正
while
循环,您可以执行以下操作:

library(ggplot2)
plt <- vector('list', 4)
it = 1
while (it < 5){
  myX = runif(10)
  myY = runif(10)
  df = data.frame(myX,myY)
  plt[[it]] = ggplot(data = df, aes(myX, myY)) + 
                     geom_point(size = 2, color = "blue")
  it = it + 1
}  
您可以使用
plt[[1]]
plt[[2]]
等访问单个绘图

create_plot <- function() {
  myX = runif(10)
  myY = runif(10)
  df = data.frame(myX,myY)
  ggplot(data = df, aes(myX, myY)) + geom_point(size = 2, color = "blue")
}
plt <- replicate(4, create_plot(), simplify = FALSE)