在启动时将par重置为默认值

Jor*_*eys 70 default r par

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

op <- par("mypar"=myvalue)
on.exit(par(op))
Run Code Online (Sandbox Code Playgroud)

这是恢复par到以前值的标准方法.想象一下,你已经运行了一些确实改变了部分语句的函数,你需要在R启动时重置为默认值.这样做的方便方法是什么?

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

小智 80

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

  • 在所有提供的回复中,这是唯一一个真正回答问题的回复. (5认同)
  • 如果我们在pdf中有多个情节,@ DarkHalo不会dev.off()不是一个糟糕的选择吗?因为这会关闭`pdf`设备,因此无法在单个pdf中包含多个图 (3认同)

Rei*_*son 51

这很hacky,但是:

resetPar <- function() {
    dev.new()
    op <- par(no.readonly = TRUE)
    dev.off()
    op
}
Run Code Online (Sandbox Code Playgroud)

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

例如:

> 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
Run Code Online (Sandbox Code Playgroud)

  • 避免尝试重置可能通过调整大小来改变的项目(例如mai,mar,pin,plt和pty)可能更安全(如帮助页面中提醒的那样). (3认同)
  • @hlm艰难然后; 只有一个这样的设备,而且R不存储默认设置,现在就可以抓住它们了.向RStudio人询问此事.或者,不要在不存储默认值的情况下更改`par()`.或者通过`.Rprofile`安排在启动时抓取默认值. (3认同)
  • 在R-help上讨论了类似的想法:http://tolstoy.newcastle.edu.au/R/e2/help/07/09/26665.html (2认同)

Anu*_*sha 14

来自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
Run Code Online (Sandbox Code Playgroud)

  • 我知道那个,但如果您之前更改了它,它不会恢复默认值.par()显示当前设置,而不是默认设置. (11认同)
  • 在这种情况下,此解决方案可能无法正常工作,但我们将其留在此处作为一种无效的方法. (4认同)