Как уже обсуждалось в комментариях, Vennerable использует графику сетки и исправляет параметры сетки внутри функций пакета. Вы, вероятно, должны любезно спросить у сопровождающих пакетов, могут ли они добавить такую функциональность в свои пакеты, но пока что я предлагаю вам Sketchof хак, который позволяет вам делать то, что вы хотите:
Первая команда позволяет вам редактировать функцию с именем makevp.eqsc
, которая, кажется, содержит определения сетки:
trace("makevp.eqsc",edit=TRUE)
Исходный код выглядит так:
function (xrange, yrange)
{
pushViewport(plotViewport(name = "Vennmar", c(1, 1, 1, 1)))
pushViewport(viewport(name = "Vennlay", layout = grid.layout(1,
1, widths = diff(xrange), heights = diff(yrange), respect = TRUE)))
pushViewport(viewport(name = "Vennvp", layout.pos.row = 1,
layout.pos.col = 1, xscale = xrange, yscale = yrange))
}
Наиболее важные части - это grid.layout
, который сообщает вам, какую сетку вы хотите нарисовать. Также важны layout.pos.row и layout.pos.col, они говорят, в какой позиции рисовать. Измените код, например, так:
function (xrange, yrange)
{
pushViewport(plotViewport(name = "Vennmar", c(1, 1, 1, 1)))
pushViewport(viewport(name = "Vennlay", layout = grid.layout(2,
1, widths = diff(xrange), heights = diff(yrange), respect = TRUE)))
pushViewport(viewport(name = "Vennvp", layout.pos.row = number,
layout.pos.col = 1, xscale = xrange, yscale = yrange))
}
Теперь вы получите два сложенных графика, например:
number<-1 #change the argument inside of makevp.eqsc
plot(VennCompare, doWeights=FALSE)
number<-2
plot(VennCompare, doWeights=TRUE,
show = list(SetLabels = TRUE, Faces = FALSE),add=TRUE) #note add=TRUE
Это выглядит не очень хорошо, но, изменив makevp.eqsc
, вы, вероятно, сможете получить более хорошие результаты.
person
Jouni Helske
schedule
09.03.2013
grid
, и похоже, чтоplot(VennCompare)
не отвечает на методы порта просмотра. - person Bryan Hanson   schedule 09.03.2013