启动时将 par 重置为默认值

发布于 2024-11-03 19:57:15 字数 250 浏览 10 评论 0原文

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

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

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

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

Normally when I make my own plot functions, I make a construct :

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

which is the standard way of reverting the par to the previous values. Imagine you've been running some functions that did change some of the pars, and you need to reset to the default values at startup in R. What is the convenient way of doing so?

Or in other words : how does one reaches the default values for par()?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(6

北方的韩爷 2024-11-10 19:57:15

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

Every time a new device is opened par() will reset, so another option is simply do dev.off() and continue.

白日梦 2024-11-10 19:57:15

这很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

This is hacky, but:

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

works after a fashion, but it does flash a new device on screen temporarily...

E.g.:

> 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
一梦等七年七年为一梦 2024-11-10 19:57:15

来自 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

From 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
老子叫无熙 2024-11-10 19:57:15

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

on.exit(layout(1))
opar<-par(no.readonly=TRUE)
on.exit(par(opar),add=TRUE,after=FALSE)

An alternative solution for preventing functions to change the user par. You can set the default parameters early on the function, so that the graphical parameters and layout will not be changed during the function execution. See ?on.exit for further details.

on.exit(layout(1))
opar<-par(no.readonly=TRUE)
on.exit(par(opar),add=TRUE,after=FALSE)
ヤ经典坏疍 2024-11-10 19:57:15

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

def.par = par()

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

par(def.par) #返回默认标准设置

这样,您可以保留生成的图并重置 par 设置。

dev.off() is the best function, but it clears also all plots. If you want to keep plots in your window, at the beginning save default par settings:

def.par = par()

Then when you use your par functions you still have a backup of default par settings. Later on, after generating plots, finish with:

par(def.par) #go back to default par settings

With this, you keep generated plots and reset par settings.

牵强ㄟ 2024-11-10 19:57:15

使用下面的脚本返回正常的 1 绘图:

par(mfrow = c(1,1))

Use below script to get back to normal 1 plot:

par(mfrow = c(1,1))
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文