2010-03-02 22 views
16

Zum Beispiel. Angenommen, ich mache:So ändern Sie die aktuelle Größe des Plotfensters (in R)

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

Und ich wünsche jetzt

plot(1:40) 

Aber ich will ein größeres Fenster für sie tun.

Ich würde vermuten, dass der Weg, es wäre zu tun (vorausgesetzt, ich will nicht um ein neues Fenster öffnen)

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

Was natürlich nicht funktioniert zu tun.

Die einzige Lösung, die ich sehe, wäre, das Fenster auszuschalten und ein neues zu starten. (Was wird meine Geschichte Geschichte Plotten)

Gibt es einen besseren Weg?

Danke. Hier

+0

Tal- Aus Ihrem Beispiel (Erhöhung der Breite um 2x) scheint es, als ob Sie die Grundstücksfläche wesentlich vergrößern können. Wenn Sie den gewünschten Plotbereich kleiner vergrößern möchten, können Sie die vier Ränder zurück verschieben, z. B. par (mar = c (3,0, 3,0, 1,5, 1,5)) – doug

+1

Sie möchten die Größe des aktuellen Fensters ändern? – Shane

+0

Sobald das Fenster geöffnet ist, "gehört" es zum Fenstermanager. Mir ist kein Aufruf bekannt, mit dem Sie die Größe und das bereits geöffnete Fenster ändern können. Sie könnten im Code schummeln und simulieren, die Maus aktiviert Fenster und Vergrößerungen, aber es scheint mir ein schlechtes Kosten-Nutzen-Verhältnis zu haben. –

Antwort

7

ist meine Lösung für dieses Problem:

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

Das wäre "funktioniert nur für Windows". Kein anderes System hat eine Funktion "Windows", wie Brian Ripley versucht hat, Ihnen zu erklären. –

+0

Hallo Dirk, Vielen Dank für die Erwähnung dieser (auch ich habe es in den Code geschrieben). Aber ich denke, das ist auch etwas ... Beste, Tal –

+0

Was ist mit Quarz() - funktioniert in OSX;)? – gawbul

13

Einige Abhilfe könnte sein, anstatt mit dev.new() R-Funktion mit dieser Funktion, die über Plattform funktionieren sollte:

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) } } 
Verwandte Themen