Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
替换R的par()函数下的绘图_R_Par - Fatal编程技术网

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

替换R的par()函数下的绘图,r,par,R,Par,应该有一个简单的方法来解决这个问题,但我不知道。我正在用R的子图函数(即25个图)绘制多个图。在绘制了10个图之后,例如,我对第11个图做了一些错误,现在如果我想使用plot函数再次绘制它,它会占用第12个子图的空间,这意味着整个子图结构会发生变化。我知道par(new=TRUE)会让我在第11幅图的顶部重新绘制,但是如果修改后的图差异太大以至于重叠不起作用,该怎么办?我们的想法是删除第11个数字,然后重新绘制。在绘制完所有25个图形后,是否可以更改第一个绘图???可以使用屏幕函数系列,尽管我承

应该有一个简单的方法来解决这个问题,但我不知道。我正在用R的子图函数(即25个图)绘制多个图。在绘制了10个图之后,例如,我对第11个图做了一些错误,现在如果我想使用
plot
函数再次绘制它,它会占用第12个子图的空间,这意味着整个子图结构会发生变化。我知道
par(new=TRUE)
会让我在第11幅图的顶部重新绘制,但是如果修改后的图差异太大以至于重叠不起作用,该怎么办?我们的想法是删除第11个数字,然后重新绘制。在绘制完所有25个图形后,是否可以更改第一个绘图???

可以使用
屏幕
函数系列,尽管我承认我不是这些函数的爱好者。正如您所希望的,它只能用于排除
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()
)中夹东西)买主注意事项

基本图形是加法的。这意味着一旦绘制了某个对象,除非删除整个设备,否则无法将其取消绘制。我想你可以在上一个图上画白色的矩形,但从技术上讲,没有“擦除”它。你是“手工”绘制25个图吗?你不是在用脚本吗?只需创建一个脚本,以
par(new=TRUE)
开始绘制25个绘图,然后您可以随意重新运行脚本,直到获得所需的结果。