2010-03-02 10 views
16

Ad esempio. Si supponga che faccio:Come modificare la dimensione corrente della finestra di stampa (in R)

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

E ora voglio fare

plot(1:40) 

Ma voglio una finestra più grande per esso.

Direi che il modo per farlo sarebbe (supponendo che non voglio aprire una nuova finestra) per fare

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

che ovviamente non funziona.

L'unica soluzione che vedo è quella di spegnere la finestra e avviarne una nuova. (Che finirà la mia storia di plotting)

C'è un modo migliore?

Grazie.

+0

Tal- dal tuo esempio (aumento della larghezza di 2x) sembra che tu voglia essere in grado di aumentare sostanzialmente l'area del grafico. Se si tratta di un aumento minore dell'area di stampa desiderata, è possibile spostare indietro i quattro margini, ad es. Par (mar = c (3.0, 3.0, 1.5, 1.5)) – doug

+1

Si desidera ridimensionare la finestra corrente? – Shane

+0

Una volta aperta la finestra, "appartiene" al window manager. Non sono a conoscenza di alcuna chiamata che consente di ridimensionare e finestra già aperta. Puoi imbrogliare e simulare in codice il "mouse attiva le finestre e ingrandisce", ma mi sembra che abbia uno scarso rapporto costi/benefici. –

risposta

7

Ecco una mia soluzione a questo:

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

Questo sarebbe "funziona solo per Windows". Nessun altro sistema ha una funzione 'windows' come Brian Ripley ha cercato di spiegarti. –

+0

Hi Dirk, Grazie per aver menzionato questo (noto anche che l'ho scritto nel codice). Ma immagino sia anche questo ... Best, Tal –

+0

Che dire di quarzo() - funziona in OSX;)? – gawbul

13

Alcuni soluzione alternativa potrebbe essere invece di usare dev.new() funzione di R utilizzare questa funzione, che dovrebbe funzionare su piattaforma:

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) } } 
Problemi correlati