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, [EMAIL PROTECTED]
<[EMAIL PROTECTED]> 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").
>
> ______________________________________________
> [email protected] mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel