Here is a minor variation: par <- function( ... ) structure( graphics::par( ... ), class = "par" ) with.par <- function( data, expr, ... ) { on.exit(par(old.par, no.readonly = TRUE)) old.par <- data invisible(expr) }
which returns expr invisibly so that this works: bp <- with(par(mar = c(4, 1, 1, 1)), boxplot(1:10)) On Sat, Apr 4, 2009 at 7:40 AM, Romain Francois <romain.franc...@dbmail.com> wrote: > Jim Ottaway wrote: >> >> Is there some sort of 'with.par' function that temporarily changes par >> parameters and then re-sets them so that instead of doing things such as >> >> opar <- par(mar=c(4.1,4.1,4.1,8),...) >> >> <do things> >> >> par(opar) >> >> you can do something like >> >> with.par(mar=c(4.1,4.1,4.1,8),..., <do things>) >> >> where all but the last argument are parameters for par, and the last is >> evaluated with opar <- par(...) and par(opar) wrapped around it? >> >> Yours sincerely, >> > > Hi, > > "with" is generic, so you could do something like that: > >> par <- function( ... ) structure( graphics::par( ... ), class = "par" ) >> with.par <- function( data, expr, ... ){ > + old.par <- data > + expr > + invisible( par( old.par ) ) > + } >> with( par( mar = c(0,0,0,0) ), plot( 1:10, 1:10 ) ) >> plot( 1:10, 1:10) > > Romain > > -- > Romain Francois > Independent R Consultant > +33(0) 6 28 91 30 30 > http://romainfrancois.blog.free.fr > > ______________________________________________ > 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. > ______________________________________________ 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.