2013-04-01 15 views
0

我想要繪製兩個數字到一個PDF,使用此代碼的數字:重疊使用推視

ncols <- 1 
nrows <- 2 
grid.newpage() 
pushViewport(viewport(layout = grid.layout(nrows, ncols))) 
for (i in seq_along(chroms)) { 
pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 1)) 
plotTracks(list(itrack, gtrack, dTrack), 
    chromosome = chr1, add = TRUE) 
pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 2)) 
plotTracks(list(biomTrack, gtrack2), 
    chromosome = chr1, add = TRUE) 
popViewport(1) 
} 

的問題是,這兩個數字重疊! (並且圖的row2保持爲空)

我希望新鮮的眼睛能夠捕捉到我的錯誤。我究竟做錯了什麼?

編輯,以反映評論作者@DINRE

ncols <- 1 
nrows <- 2 
grid.newpage() 
pushViewport(viewport(layout = grid.layout(nrows, 
+  ncols))) 
for (i in seq_along(chroms)) { 
pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 1)) 
plotTracks(list(itrack, gtrack, dTrack), 
    chromosome = chr1, add = TRUE) 
**popViewport(1)** ## NEED TO POP OUT FIRST ROW BEFORE PLOTTING SECOND. 
pushViewport(viewport(layout.pos.col = 1, layout.pos.row = 2)) 
plotTracks(list(biomTrack, gtrack2), 
    chromosome = chr1, add = TRUE) 
popViewport(1) 
} 
+0

請讓您的情況具有可重複性,即向我們提供模擬您的情況所需的數據和代碼。有關如何執行此操作的更多提示,請參閱http://stackoverflow.com/questions/5963269/how-to-make-a-great-r-reproducible-example。 –

+0

爲什麼使用'grid.layout'函數有特別的原因嗎?您可以輕鬆指定視口的確切尺寸,位置和理由。如果你想在第一行和第二行中使用一個,使用'npc'尺寸,像這樣:'pushViewport(viewport(x = 0,y = 1,height = 0.5,width = 1,just = c 「left」,「top」)))''和'pushViewport(viewport(x = 0,y = 0,height = 0.5,width = 1,just = c(「left」,「bottom」)))' – Dinre

+1

,我想我會看到你的問題......在推動最下面一行之前,嘗試彈出頂行的視口。 – Dinre

回答

2

最下面一行的視被推頂行的視口內。首先彈出頂行的視口似乎可以解決問題。

注意:這是使用視口製作的一個非常常見的錯誤,所以如果它碰巧發生在您身上,請不要感覺不好。