2010-03-02 82 views
16

例如。假設我做的:如何更改當前繪圖窗口大小(R)

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

現在我希望做

plot(1:40) 

但我想它一個更大的窗口。

我猜的方式做這將是(假設我不想打開一個新的窗口)做

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

這當然是行不通的。

我看到的唯一解決方案就是關閉窗口並開始新窗口。 (這將結束我的繪圖歷史)

有沒有更好的方法?

謝謝。

+0

Tal-從你的例子(寬度增加2倍)看來,你希望能夠大幅增加繪圖區域。如果您想要的繪圖區域的增加幅度較小,則可以將四個邊距移回,例如par(mar = c(3.0,3.0,1.5,1.5)) – doug 2010-03-02 22:49:15

+1

您想要調整當前窗口的大小? – Shane 2010-03-02 22:59:44

+0

窗口打開後,它「屬於」窗口管理器。我不知道有任何調用允許您調整大小和已打開的窗口。你可以在代碼中作弊和模擬'鼠標激活窗口並放大',但它讓我覺得成本效益比很差。 – 2010-03-03 01:20:16

回答

7

這裏是我的解決方案是:

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

這將是'只適用於Windows'。 Brian Ripley試圖向你解釋,沒有其他系統具有'windows'功能。 – 2010-03-03 20:19:19

+0

嗨德克, 感謝提到這一點(也注意到我寫在代碼中)。 但我想這也是太... 最好, Tal – 2010-03-03 22:03:16

+0

什麼是石英() - 在OSX中工作;)? – gawbul 2012-03-09 13:00:16

13

一些解決辦法可能是,而不是使用dev.new()R功能使用此功能,應跨平臺的工作:

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