[Rd] Wish: Option to configure the default par() (PR#9545)

Gabor Grothendieck ggrothendieck at gmail.com
Wed Mar 7 18:04:52 CET 2007

Here are a few ideas:

For #1 define:

"$.Par" <- function(x, FUN) {
   par.default <- getOption("par.default")
   if (!is.null(par.default)) do.call("par", par.default)
   get(FUN, parent.frame())
Par <- structure(NA, class = "Par")

# and now one can preface any function with Par$ and it will
# call par and then the function.  This eliminates an extra statement
# but does mean you have to preface plot, say, with Par$
# e.g.

options(par.default = list(bg = "light gray", las = 2))

For #2 do:

plot <- Par$plot

Another idea for #2 is to use the connect package.  See:

On 3/6/07, thomas.friedrichsmeier at ruhr-uni-bochum.de
<thomas.friedrichsmeier at ruhr-uni-bochum.de> wrote:
> Full_Name: Thomas Friedrichsmeier
> Version: 2.4.1
> OS: linux (Debian unstable)
> Submission from: (NULL) (
> Summary: It would be nice to have a centralized option for setting default par()
> options for all devices and all plots. This would ease producing graphs in a
> customized but consistent way. Suggesting options("par.default").
> Example problem: Make all graphs look like
> par(bg="light gray", las=2)
> both on screen and for various produced file formats such as png() and
> postscript().
> Current situation: To solve the example problem, two approaches come to mind:
> 1) Always call par() before the next plot. This could be wrapped into a function
> to make it easier to stay consistent. E.g.:
> postscript()
> myDefaultPar()       # calls par(bg="light gray", las=2)
> plot(...)
> 2) Create wrappers for all devices of interest, like e.g. (not quite correct,
> but good enough for this example):
> myX11 <- function(...) {
>  X11(...)
>  par(bg="light gray", las=2)
> }
> Both solutions work, but are not entirely elegant. The drawback of 1) is that
> you still need to add the given line manually at all places. The drawback of 2)
> is that a similar wrapper will have to be created (and used) for each different
> device.
> Wish:
> Add a new option: options("par.default"), similar to the existing
> options("par.ask.default"). This option would accept a list of all par settings
> to set a custom default for:
> options(par.default=list(bg="light gray", las=2))
> par() options specified while creating the device, in calls to plot() or in
> subsequent calls to par() would take precendence over options("par.default").
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel

More information about the R-devel mailing list