[R] temporarily modify par values?

Gabor Grothendieck ggrothendieck at gmail.com
Sat Apr 4 15:40:21 CEST 2009


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.francois at 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 at 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.
>




More information about the R-help mailing list