82

通常,当我制作自己的绘图函数时,我会制作一个构造:

op <- par("mypar"=myvalue)
on.exit(par(op))

这是恢复par到以前值的标准方法。想象一下,您一直在运行一些确实改变了某些 pars 的函数,并且您需要在 R 启动时重置为默认值。这样做的方便方法是什么?

或者换句话说:如何达到默认值par()

4

6 回答 6

102

每次打开新设备时,par() 都会重置,因此另一个选项是简单地执行dev.off()并继续。

于 2015-08-09T21:28:09.103 回答
53

这很hacky,但是:

resetPar <- function() {
    dev.new()
    op <- par(no.readonly = TRUE)
    dev.off()
    op
}

在时尚之后工作,但它确实会暂时在屏幕上闪烁一个新设备......

例如:

> par(mfrow = c(2,2)) ## some random par change
> par("mfrow")
[1] 2 2
> par(resetPar())     ## reset the pars to defaults
> par("mfrow")        ## back to default
[1] 1 1
于 2011-04-26T12:39:12.503 回答
19

来自Quick-R

par()              # view current settings
opar <- par()      # make a copy of current settings
par(col.lab="red") # red x and y labels 
hist(mtcars$mpg)   # create a plot with these new settings 
par(opar)          # restore original settings
于 2013-05-31T14:41:57.477 回答
4

防止功能更改用户的替代解决方案par。您可以在函数的早期设置默认参数,以便在函数执行过程中不会更改图形参数和布局。有关详细信息,请参阅?on.exit

on.exit(layout(1))
opar<-par(no.readonly=TRUE)
on.exit(par(opar),add=TRUE,after=FALSE)
于 2019-10-14T00:40:44.447 回答
1

使用以下脚本恢复正常的 1 绘图:

par(mfrow = c(1,1))
于 2018-08-08T16:02:56.100 回答
1

dev.off() 是最好的函数,但它也会清除所有绘图。如果您想在窗口中保留绘图,请在开始时保存默认面值设置:

def.par = par()

然后,当您使用 par 函数时,您仍然拥有默认 par 设置的备份。稍后,在生成绘图后,完成:

par(def.par) #回到默认的par设置

有了这个,您可以保留生成的图并重置标准设置。

于 2020-04-23T15:48:26.993 回答