2

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

4

1 回答 1

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="...")and中dev.off())对此进行测试。警告购买者

于 2014-09-29T06:23:03.230 回答