恢复图形参数时的警告

Warnings when restoring graphical parameters

我正在编写我的第一个 R 程序包,目前正在开发一个使用某些特定图形参数绘制绘图的函数。我希望在绘图完成后恢复用户定义的图形参数,但总是收到相同的警告消息:

opar <- par()
par(oma = c(5, 4, 0, 0) + 0.1, mar = c(0, 0, 1, 1) + 0.1)
par(opar)

Warning messages:
1: In par(opar) : graphical parameter "cin" cannot be set
2: In par(opar) : graphical parameter "cra" cannot be set
3: In par(opar) : graphical parameter "csi" cannot be set
4: In par(opar) : graphical parameter "cxy" cannot be set
5: In par(opar) : graphical parameter "din" cannot be set
6: In par(opar) : graphical parameter "page" cannot be set

有更好的方法吗?我知道 suppressWarnings() 函数,但 1. 我不希望消息被 隐藏 和 2. 如果该函数被调用两次,则会出现一条警告消息:

> There were 12 warnings (use warnings() to see them)

您可以通过在保存图形参数时提供 no.readonly = TRUE 来绕过这些警告,如下所示:

opar <- par(no.readonly = TRUE)
par(oma = c(5, 4, 0, 0) + 0.1, mar = c(0, 0, 1, 1) + 0.1)
par(opar)

此外,您可以使用 dev.off() 恢复默认的 par 参数值。

希望对您有所帮助。

我的评论中的 ... 只是一个 占位符 ,用于放置您打算放在那里的任何内容。 (我倾向于认为注释中的很多代码可能难以阅读,所以我只是缩短了它。)

直译:

opar <- par(oma = c(5, 4, 0, 0) + 0.1, mar = c(0, 0, 1, 1) + 0.1)
# other code that uses those settings
# when you are ready to reset to the original settings for oma and mar,
par(opar)

这在文档中的类似示例中提供,?par

以这种方式进行操作与使用 opar <- par(no.readonly=TRUE) 保存所有 par 参数不同的一个示例是,这仅 reset/restores 您明确更改的参数。作为其他操作的副作用(在此 intent 之外),其他人可能已经改变是可行的。