5

我希望能够在 R 中使用多个绘图来跟踪正在运行的模拟。简单的方法是创建一个多面板绘图(在我的情况下我只使用par(mfrow = c(2,2))),然后依次绘制四个绘图中的每一个。问题是它每次都必须完全重绘绘图,并且每次函数到达最后一个(第 4 个)面板时,整个窗口都会被重绘。我想要的是能够转移回例如第一个面板,然后在前一个面板的顶部绘制下一个点。如果这是单独的窗口,我可以在它们之间进行更改dev.set(),但是面板是否有类似的东西?

4

1 回答 1

6

如果您将绘图设置为开始时正确的最终尺寸,您可以使用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)
}
于 2013-07-01T21:18:56.970 回答