2013-04-01 5 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) 
} 

Проблема заключается в том, что две фигуры пересекаются! (И строка 2 фигуры остается пустой)

Я надеюсь, что свежие глаза поймают мою ошибку. Что я делаю не так?

отредактирован REFLECT комментарий от @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

Wait , Я думаю, что вижу вашу проблему ... попробуйте щелкнуть окно просмотра верхней строки, прежде чем нажимать нижнюю строку. – Dinre

ответ

2

окно просмотра в нижней строке в выталкивается внутри окна просмотра верхней строки. Появление первого окна просмотра верхней строки, похоже, устраняет проблему.

Примечание: Это очень распространенная ошибка, связанная с видовыми экранами, поэтому не чувствуйте себя плохо, если это происходит с вами.