我希望能够在R中跟踪具有多个图形的运行模拟。简单的方法是创建一个多面板图(在我的情况下,我只使用par(mfrow = c(2,2))
),然后依次绘制四个图形。问题是每次必须完全重新绘制图形,并且每次函数达到最后(第4个)面板时,整个窗口都会被重新绘制。我希望能够返回到例如第一个面板,然后在先前的基础上绘制下一个点。如果这是单独的窗口,我可以使用dev.set()
在它们之间进行更改,但是是否有类似于面板的东西?
如果你一开始就设置好了正确的最终尺寸,你可以使用par(mfg=
在不同的面板之间进行切换并添加内容。
例如:
pars <- c('plt','usr')
par(mfrow=c(2,2))
plot(anscombe$x1, anscombe$y1, type='n')
par1 <- c(list(mfg=c(1,1,2,2)), par(pars))
plot(anscombe$x2, anscombe$y2, type='n')
par2 <- c(list(mfg=c(1,2,2,2)), par(pars))
plot(anscombe$x3, anscombe$y3, type='n')
par3 <- c(list(mfg=c(2,1,2,2)), par(pars))
plot(anscombe$x4, anscombe$y4, type='n')
par4 <- c(list(mfg=c(2,2,2,2)), par(pars))
for( i in 1:11 ) {
par(par1)
points(anscombe$x1[i], anscombe$y1[i])
Sys.sleep(0.5)
par(par2)
points(anscombe$x2[i], anscombe$y2[i])
Sys.sleep(0.5)
par(par3)
points(anscombe$x3[i], anscombe$y3[i])
Sys.sleep(0.5)
par(par4)
points(anscombe$x4[i], anscombe$y4[i])
Sys.sleep(0.5)
}
?split.screen
有一些示例。 - baptistesplit.screen()
和screen()
命令来完成这个任务:https://dev59.com/LXA75IYBdhLWcg3ws7Yh?rq=1 - Michael K. Borregaard