[[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)
我有一个双 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)