2012-08-24 100 views
2

可能重複:
Multiple plots with high-level plotting functions, especially plot.rqs()(R)繪製位數迴歸係數分佈與quantreg包

我跑18個具有一個相關的,並且一個獨立變量位數消退。我想要在$ \ tau = 0.01,0.02,...,0.99 $之間的18個斜率估計的分佈的$ 6 * 3 $瓦塊圖。

這裏是我已經能夠到目前爲止做:

require(quantreg) 

op <- par(xlab="") 
y=rnorm(200) 
x=rnorm(200) 
plot(summary(rq(y~x,tau=1:99/100)),parm=2,main="",mfrow=c(6,3),mar=c(0.5,2,2,2)) 
par(new=TRUE) 
plot(summary(rq(y~x,tau=1:99/100)),parm=2,main="",mfrow=c(6,3),mar=c(0.5,2,2,2)) 

第二個情節去一直到右下角,當我嘗試第三次它在圖形窗口中甚至沒有。

我試圖把par(mfrow = c(6,3))放在plot()之外,但它沒有起作用。所有的

enter image description here

+0

有50個或更多的警告。輸入警告()時會顯示什麼? –

+0

這只是「在rq.fit.br(x,y,tau = tau,ci = TRUE,...):解決方案可能不是唯一的」。所有時間都會發生變化無關你使用的變量。它來自'rq()',而不是'plot()'。 – 2012-08-24 00:30:29

+0

@DWin我的數據是我在我提供的代碼中生成的'y'和'x'。 – 2012-08-24 04:12:30

回答

3

plot.summary.rqs的默認行爲是爲每個參數構建一個瓦片圖,這可能是您習慣看到的,但是正如Roland所說,它以某種方式使用par()這會挫敗你的努力。你可以通過幾種方法來克服這一點。一個是重做該功能。但是如果你想讓這個功能保持不變,那麼你可以創建一個輔助功能(一個帶有新名字的原件副本),用於評論par調用(有2個),並將其用於框架內的後續繪圖。

enter image description here

+0

我試着創建一個與'plot.summary.rqs'完全相同的新函數,唯一的區別是(遵循你所說的)'par(mfrow = mfrow_orig,mar = mar_orig)'的兩個實例都被註釋了用'#'出來。然後我複製你的代碼(在每次調用之間用par(new = TRUE)),並且新函數的第一次調用創建了一個圖形,它佔用了整個圖形設備(而不是小而堅持我所期望的'mfrow') 。 – 2012-08-25 03:30:57

+0

不需要'par(new = TRUE)'。注意我沒有在我的屏幕截圖中使用它。在第一次調用設置後,佈局會逐個填充。我認爲'new = TRUE'會覆蓋第一個情節並且破壞你的目的。 –

+0

我首先嚐試不使用'par(new = TRUE)',但它不起作用。讓'plot2'成爲一個函數,除了兩個'par(.....)'行已經被刪除之外,它和'plot.summary.rqs'完全相同。然後我運行四行---第1行:'y = rnorm(200)',第2行:'x = rnorm(200)',第3行:'plot(rq(y〜x,tau = 1) :第2行,第2行,第2行,第2行,第2行,第2行,第2行,第2行, y = x,tau = 1:99/100)),parm = 2,main =「」,mar = c(0.5,2,2,2))',並且會有一個圖形設備窗口,沒有像'mfrow'那樣的平鋪。 – 2012-08-25 04:53:20

1

首先,我會擔心這些警告。

問題是,plot.summary.rqs設置和重置繪圖參數,這是不好的恕我直言。一種解決方案是根據沒有此功能的plot.summary.rqs定義您自己的繪圖功能。

+0

(1)我會盡力的,謝謝。然而,如果有人知道,我會再等幾天,因爲有太多的論文都在做平鋪的陰謀,我看不到任何人在R論壇上抱怨,所以這可能是我編寫它的方式。 (2)'(1:99)/ 100'與'1:99/100'相同。 – 2012-08-24 08:20:48