2010-03-02 11 views
16

Por ejemplo. Suponga que hago:Cómo cambiar el tamaño de la ventana de trazado actual (en R)

dev.new(width=5, height=4) 
plot(1:20) 

Y ahora quiero hacer

plot(1:40) 

Pero quiero una ventana más grande para él.

yo supongo que la manera de hacerlo sería (suponiendo que no quiero abrir una nueva ventana) para hacer

plot(1:40, width=10, height=4) 

Lo que por supuesto no funciona.

La única solución que veré sería apagar la ventana e iniciar una nueva. (Lo que terminará mi historia de trazado)

¿Hay una manera mejor?

Gracias.

+0

Tal- de su ejemplo (aumento de ancho en 2x) parece que desea poder aumentar sustancialmente el área de trazado. Si es un aumento menor en el área de trazado que desea, puede mover los cuatro márgenes hacia atrás, por ejemplo, par (mar = c (3.0, 3.0, 1.5, 1.5)) – doug

+1

¿Desea cambiar el tamaño de la ventana actual? – Shane

+0

Una vez que se abre la ventana, "pertenece" al administrador de ventanas. No conozco ninguna llamada que le permita cambiar el tamaño y la ventana ya abierta. Podrías engañar y simular en código el 'mouse activa ventanas y aumenta' pero me parece que tiene una relación costo/beneficio baja. –

Respuesta

7

Aquí es una solución a este mi:

resize.win <- function(Width=6, Height=6) 
{ 
     # works for windows 
    dev.off(); # dev.new(width=6, height=6) 
    windows(record=TRUE, width=Width, height=Height) 
} 
resize.win(5,5) 
plot(rnorm(100)) 
resize.win(10,10) 
plot(rnorm(100)) 
+5

Eso sería 'funciona solo para Windows'. Ningún otro sistema tiene una función 'ventanas' como Brian Ripley intentó explicarle. –

+0

Hola Dirk, Gracias por mencionar esto (también aviso que lo escribí en el código). Pero supongo que esto es algo demasiado ... Mejor, Tal –

+0

¿Qué pasa con el cuarzo() - funciona en OSX;)? – gawbul

13

Algunos solución podría ser en lugar de utilizar dev.new función R() utiliza esta función que debe trabajar a través de la plataforma:

dev.new <- function(width = 7, height = 7) 
{ platform <- sessionInfo()$platform if (grepl("linux",platform)) 
{ x11(width=width, height=height) } 
else if (grepl("pc",platform)) 
{ windows(width=width, height=height) } 
else if (grepl("apple", platform)) 
{ quartz(width=width, height=height) } } 
Cuestiones relacionadas