[[base R]] 同时打开两个图形设备,并在两者之间翻转

[[base R]] Have two graphic devices open at the same time, and flip between the two

我有一个双 for 循环,例如:

for (alphabet in c("A","B")) {
   for (number in c(1,6)) {
      plot(......)
   }
}

我想要做的是将总共 12 个地块排列成这样,最后导出两个 png,每个包含 {{A1~3,B1~3}} 和 {{ A4~6,B4~6}}分别

我不确定应该在哪里调用 png() 来实现这一点。

我的实验室坚持我只使用基础 R..

谢谢。

1)做第一组,然后做第二组。

png("first.png")
par(mfcol = 3:2)
for (a in c("A","B")) for(n in 1:3) plot(0, main = paste(a, n))
dev.off()

png("second.png")
par(mfcol = 3:2)
for (a in c("A","B")) for(n in 4:6) plot(0, main = paste(a, n))
dev.off()

这里是first.png。 second.png 类似。

2) 虽然如果你真的想来回切换的话 (1) 看起来更简单:

png("first.png")
first <- dev.cur()
par(mfcol = 3:2)

png("second.png")
second <- dev.cur()
par(mfcol = 3:2)

for (a in c("A","B")) {
   for (n in 1:6) {
     dev.set(if (n <= 3) first else second)
     plot(0, main = paste(a, n))
   }
}

dev.off(first)
dev.off(second)