From thomas.friedrichsmeier at ruhr-uni-bochum.de  Sun Jan 23 20:06:09 2011
From: thomas.friedrichsmeier at ruhr-uni-bochum.de (Thomas Friedrichsmeier)
Date: 23 Jan 2011 20:06:09 +0100
Subject: [Rd] feature request: additional hook in plot.new()
In-Reply-To: <4D3C4CD5.30104@acm.org>
References: <4D3C4CD5.30104@acm.org>
Message-ID: <201101232006.16256.thomas.friedrichsmeier@ruhr-uni-bochum.de>

Hi Tony,

On Sunday 23 January 2011, you wrote:
> Request: An additional hook in plot.new() that is called prior to the call
> to .Internal(plot.new()). Reason: To allow the hook to set up or modify a
> graphics device that the new plot will appear in.

for what it's worth, you can work around the lack of this hook by modifying 
plot.new(). Here's what we do in RKWard (in order to add a plot history 
feature):

"plot.new" <- function () 
{
	# [your code goes here]

	eval (body (.rk.plot.new.default))
}
formals (plot.new) <- formals (graphics::plot.new)
.rk.plot.new.default <- graphics::plot.new

# Note: This needs to be called *after* the package has been loaded
assignInNamespace ("plot.new", plot.new, envir=as.environment 
("package:graphics"))

Note that at least persp() also sets up a new plot, _without_ calling 
plot.new(). So you'll want to catch that as well.

In RKWard we use this technique at a number of places to insert "hooks" where 
there are none, regularly.

Regards
Thomas
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 198 bytes
Desc: This is a digitally signed message part.
URL: <https://stat.ethz.ch/pipermail/r-devel/attachments/20110123/bc417e9d/attachment.bin>


[Rd] feature request: additional hook in plot.new()
Thomas Friedrichsmeier