替换R的par()函数下的绘图

时间:2014-09-29 02:59:39

标签: r par

应该有一个简单的方法来解决这个问题,但我不知道。我正在使用R的par(mfrow=c(5,5))子图函数绘制多个数字(即25个数字)。在绘制了10个数字后,例如我说第11个绘图做错了,现在如果我想用plot函数重新绘制它,它会占用第12个子图的空间,这意味着整个子图结构会发生变化。我知道par(new=TRUE)会让我重新绘制在第11个数字的顶部,但如果修改后的情节如此不同以至于重叠不起作用呢?想法是删除第11个数字,然后重新绘制它。如何在绘制所有25个数字之后更改第一个图?

1 个答案:

答案 0 :(得分:0)

可以使用screen系列函数,但我承认不是他们的狂热爱好者。正如您所希望的那样,它只能用于par(mfrow=c(5.5))甚至layout(...)独占

话虽如此,完全有可能重绘屏幕。例如:

split.screen(c(5,5))
for (scr in 1:25) {
    screen(scr)
    par(mar=rep(0,4)+0.1)
    plot(0)
}
screen(7)
par(bg='white') # necessary for some display types
erase.screen()
plot(2)

(这当然不是一个很好的例子,但它很有用。)

注意背景颜色(bg)的显式设置为白色;假设有一些显示透明度,不这样做似乎没有任何影响(即erase.screen()什么都不做)。

话虽如此,有很多现代和近现代的图形函数/库/包可以完成这个包支持的东西。我没有使用图像捕获机制(例如将事物夹在png(file="...")dev.off()中)进行测试。 警告经理