在R中的多面板图中更改绘图面板

时间:2013-07-01 18:12:59

标签: r plot

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

1 个答案:

答案 0 :(得分:5)

如果您将图表设置为正确的最终尺寸,则可以使用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)
}