On Tue, Sep 11, 2012 at 2:54 PM, David Winsemius <dwinsem...@comcast.net> wrote: > > On Sep 11, 2012, at 7:48 AM, Gabor Grothendieck wrote: > >> On Wed, Sep 5, 2012 at 11:06 AM, Nicolai Schneider >> <rstatistics.u...@gmail.com> wrote: >>> Hello everyone, >>> >>> a problem with the plot.zoo function. In the parameters of the function, >>> cex.lab is ignored. I tried to reduce the size of the yaxis labels by at >>> least 50%. >>> >>> ------------------ >>> >>> Example: >>> >>> sample <- as.zoo(EuStockMarkets) >>> >>> par(las=1) >>> >>> plot.zoo(sample, plot.type="multiple", main="Time Series", xlab="Date", >>> yaxt="n", cex.lab=0.5, xaxs="i") >>> # Try playing with different values for cex.lab >>> >>> par(las=0) >>> >> >> Internally it uses mtext to write that text and mtext uses cex which >> is already taken. Here is a workaround: >> >> library(proto) >> p <- proto(plot.zoo = plot.zoo, mtext = function(...) >> graphics::mtext(..., cex = .5)) >> with(p, plot.zoo)(sample) > > So that creates an R environment where you are creating an unmodified > instance of the plot.zoo function as well as installing a > genetically-modified instance of mtext which has a redefinition of the > parameter list to graphics::mtext()? (So using `(... , arg=newval)` is an > acceptable way to over-rule a parameter list assignment? It certainly seems > to be.) > > So when you access access that p-instance of plot.zoo(), it finds this new > "genetically-modified" instance of mtext() because it is in the same > environment? > > And the reason it doesn't work to just redefine mtext (I tried) is that it > would be in an environment that plot.zoo would not examine first when called > from the command line? >
Yes, proto changes the environment of plot.zoo when its inserted into p. For comparison it could be done like this without proto: e <- local({ mtext <- function(...) graphics::mtext(..., cex = 0.5) environment(plot.zoo) <- environment() }) with(e, plot.zoo)(sample) -- Statistics & Software Consulting GKX Group, GKX Associates Inc. tel: 1-877-GKX-GROUP email: ggrothendieck at gmail.com ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.