[R] mult.fig() utility [was "margin text mtext"]
Bill.Venables@CMIS.CSIRO.AU
Bill.Venables at CMIS.CSIRO.AU
Mon Jun 11 09:46:02 CEST 2001
Martin,
I have an objection in principle to anything that has the side-effect of
clobbering something in the global environment, even something as innocuous
looking as "old.par". I certainly object to putting something like that
into a public library, however clever and useful the code might be. It just
is not safe.
As a quick way round this I suggest the following (R only) solution:
1. Give the function mult.fig an explicit local environment on definition:
> environment(mult.fig) <- new.env()
2. Instead of using the superassignment operator, assign the restore list to
the local environment of multi.fig (from within multi.fig):
assign("old.par", ......, envir = environment(mult.fig))
3. Provide a special argument to mult.fig so that instead of using
par(old.par) to restore the original graphics parameters the user does
something like
> mult.fig(restore = TRUE)
Honour is satisfied.
(The S solution would be to call it .old.par and to put it in frame 0.)
---
The other suggestion you make is putting things like plotCI into some sort
of miscellaneous graphics function library. Not a bad idea, but may I
suggest that plotCI should be re-written so that there is a generic
function, say CI(), that does the setup and calculations and generates an
object of class "CI", which is plotted by the method plot.CI for the plot
generic? I think this is a better way of handling it (again in principle).
I find to my surprise that I am quoted as the original author of plotCI but
I don't think I am. I think all I did was to modify and extend something
even more ancient that I seem to recall came from Charles Geyer. We are
talking long, long ago now, though...
Bill Venables.
-----Original Message-----
From: Martin Maechler [mailto:maechler at stat.math.ethz.ch]
Sent: Monday, 11 June 2001 4:55 PM
To: R-help at stat.math.ethz.ch
Cc: Christian Hoffmann
Subject: [R] mult.fig() utility [was "margin text mtext"]
Now that this is solved...
The task of setting up a multi-figure plot with a title
(and "fixing" mar a bit) is such a common thing that I had designed a
utility function for the job, ``back in the time of S-plus'' ;-)
and called it mult.fig().
I (and few people here) have been using it for several years now
and it may be that it'd be worth to be put into one of those ``misc''
packages {{maybe we should rename ``stepfun'' to ``graphmisc'' and
add a few things, including the "plotCI" one?}}
Anyway here is the code and the doc:
-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-help mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !) To: r-help-request at stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._
More information about the R-help
mailing list