グリッドに 4 つの venn.diagramm プロットを表示しようとしています。凡例が他の図と重ならないように (またはプロットの外に出ないように)、図の間のスペースを増やす必要があります。
margin
関数をいじってそうしようとしましたvenn.diagram
が、これにより、図とそれぞれのサブタイトルの間の距離が長くなります (何が良くないのですか)。
私に関連するいくつかの質問を見てきました (たとえば、 grid.layout 内の図の内側のマージンを制御する) が、私の場合はうまくいきませんでした。
これが私のコードです:
library(VennDiagram)
library(grid)
library(gridBase)
library(lattice)
# data
l1 <- list(Deletion=1:1420, Insertion=967:2042)
l2 <- list(Deletion=1:502, Insertion=324:660)
l3 <- list(Deletion=1:142, Insertion=85:184)
l4 <- list(Deletion=1:161, Insertion=22:217)
venns <- list(Subtargets=l1, Targets=l2, Genes=l3, Promoters=l4)
# set up grid layout
gl <- grid.layout(nrow=2, ncol=2)
# setup viewports
vp.1 <- viewport(layout.pos.col=1, layout.pos.row=1)
vp.2 <- viewport(layout.pos.col=2, layout.pos.row=1)
vp.3 <- viewport(layout.pos.col=1, layout.pos.row=2)
vp.4 <- viewport(layout.pos.col=2, layout.pos.row=2)
# init layout
pushViewport(viewport(layout=gl))
for (i in 1:4){
# access the relevant viewport
vp <- paste("vp.", i, sep="")
pushViewport(get(vp))
# draw the venn diagram
temp <- venn.diagram(venns[[i]], fill = c("red", "green"), alpha = c(0.5, 0.5),
cex = 1,cat.fontface = 2, lty =2, filename = NULL, sub=names(venns)[i],
margin = 0.5, sub.pos = c(0.5, 0.78), sub.col="blue")
# plot the venn diagram on the viewport
grid.draw(temp)
# done with this viewport
popViewport()
}
何か案が?ビューポート内のパラメーターを変更せずに、ビューポート間のマージンを増やすことでしょうか?