2011-04-26 12 views
52

Normalmente cuando hago mis propias funciones de la trama, hago un constructo:Restablecer la par con los valores por defecto en el arranque

op <- par("mypar"=myvalue) 
on.exit(par(op)) 

que es la forma habitual de revertir la par a los valores anteriores. Imagine que ha estado ejecutando algunas funciones que cambiaron algunos de los pares, y necesita restablecer los valores predeterminados al inicio en R. ¿Cuál es la forma conveniente de hacerlo?

O en otras palabras: ¿cómo se alcanzan los valores predeterminados para par()?

+5

Tenía la impresión de que, cada vez que se inicia un nuevo dispositivo gráfico, se le dan valores predeterminados de todos modos. – James

+3

@James Lo hacen, pero creo que el empuje de @Joris Q es, ¿hay alguna manera de restablecer los pares para el dispositivo actual si no se han guardado los valores predeterminados? En otras palabras, ¿cómo determinamos los pares predeterminados para un dispositivo, no los pares actuales? –

+7

@Gavin Simpson Ah bien, pero 'dev.new()' y 'dev.off()' podrían usarse entonces – James

Respuesta

58

Cada vez que se abre un nuevo dispositivo, par() se reiniciará, entonces otra opción es simplemente hacer dev.off() y continuar.

+3

Entre todas las respuestas proporcionadas, esta es la única que realmente responde la pregunta. – gented

+0

@DarkHalo no dev.off() b ¿Es una mala opción si tuviéramos que tener múltiples parcelas en un pdf? porque esto cerraría el dispositivo 'pdf' y por lo tanto no sería posible tener múltiples parcelas en un solo pdf –

47

Ésta es hacky, pero:

resetPar <- function() { 
    dev.new() 
    op <- par(no.readonly = TRUE) 
    dev.off() 
    op 
} 

obras en cierto modo, pero lo hace parpadear un nuevo dispositivo en la pantalla temporalmente ...

Ejem:

> par(mfrow = c(2,2)) ## some random par change 
> par("mfrow") 
[1] 2 2 
> par(resetPar())  ## reset the pars to defaults 
> par("mfrow")  ## back to default 
[1] 1 1 
+3

Podría ser más seguro evitar reiniciar ítems que hubieran sido cambiados cambiando el tamaño como mai, mar, pin, plt y pty (como se advierte en la página de ayuda par). –

+2

Se discutió una idea similar en R-help: http://tolstoy.newcastle.edu.au/R/e2/help/07/09/26665.html – Aaron

+0

@ Aaron agradece el enlace. –

8

De Quick-R

par()    # view current settings 
opar <- par()  # make a copy of current settings 
par(col.lab="red") # red x and y labels 
hist(mtcars$mpg) # create a plot with these new settings 
par(opar)   # restore original settings 
+9

Lo sé, pero no restaura los valores predeterminados si los cambió antes. Par() muestra la configuración actual, no la configuración predeterminada. –

+3

Esta solución puede no funcionar en este caso, pero déjenla aquí como un enfoque que no funciona. – Anusha

Cuestiones relacionadas