From ggrothendieck at gmail.com  Wed Mar  7 18:04:52 2007
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Wed, 7 Mar 2007 12:04:52 -0500
Subject: [Rd] Wish: Option to configure the default par() (PR#9545)
In-Reply-To: <20070306140338.CE3F65D608@slim.kubism.ku.dk>
References: <20070306140338.CE3F65D608@slim.kubism.ku.dk>
Message-ID: <971536df0703070904y54556568w3bf548259c0b47be@mail.gmail.com>

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))
Par$plot(1:10)
Par$boxplot(1:10)


For #2 do:

plot <- Par$plot


Another idea for #2 is to use the connect package.  See:
http://code.google.com/p/r-connect/


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) (84.60.113.185)
>
>
> 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
>



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