如何在循环中将第一个绘图放在第一行中,将第二个绘图放在第二行中?

时间:2013-12-16 01:59:47

标签: r loops plot

我希望在for循环中有一个包含两个绘图的页面,以便将我的第一个输出放在c(11)中,将下一个输出放在c中(2 1)。我使用这些命令:

f<-0
for (i in 1:m) {
   if ((i%%2!=0) { 
     f<-f+1
     Outfile<-paste(‘location,file name’,f,’.eps’)
     Par(mfrow=c(2,1)) 
   } else { 
     Outfile<-paste(‘location,file name’,f,’.eps’)
     Par(mfrow=c(2,1)) 
   } 
}

但是第二个情节不会进入第二列,每次它只会显示第二个情节而不是第一个情节,是否有任何建议?

2 个答案:

答案 0 :(得分:0)

我不确定我是否理解了这个问题,但是要显示5行2列中的10个图,例如你可以这样做:

op <- par(mfrow = c(5, 2), mar = c(0, 0, 0, 0), no.readonly = TRUE)

for (i in 1:10) {
    plot(rnorm(100))
}

par(op)

答案 1 :(得分:0)

这或多或少是你的目标吗?

x <- 1:10
#
y1 <- x
y2 <- 2 * x

m <- 40
#
for (i in 1:m) {
  if (i%%2 != 0) {
    png(sprintf("output-file-%d.png", ceiling(i / 2)))
    par(mfrow = c(1, 2))
    plot(x, y1)
  } else { 
    plot(x, y2)
    dev.off()
  } 
}