This question already has an answer here:
Arrange base plots and grid.tables on the same page
(1 个回答)
4年前关闭。
有没有办法将以下维恩图作为下面两个直方图之后的第三个图?
我想要两个维恩图一个在另一个上面
排列 basemap 和网格图
其中产生
或者使用
其中产生
您可以将任一方法的布局更改为您想要的。
(1 个回答)
4年前关闭。
有没有办法将以下维恩图作为下面两个直方图之后的第三个图?
我想要两个维恩图一个在另一个上面
library(VennDiagram)
plus.venn<-draw.pairwise.venn(368, 1171, 149) #venn diagram 1
minus.venn<-draw.pairwise.venn(349, 1335, 173) #venn diagram 2
par(mfrow=c(1,3))
a<-sample(1:10000,3000)
b<-sample(5000:15000,3000)
hist(a)
hist(b)
最佳答案
展开 MrFlicks 和我上面的评论。
您可以使用 gridBase
包组合基础图形和网格图形。但是,如果您不受限于使用基本 R 图形,您可能会发现使用基于网格的图形包生成所有绘图并使用 gridExtra
包将它们组合起来更容易。
您的数据
library(VennDiagram)
plus.venn <- draw.pairwise.venn(368, 1171, 149) #venn diagram 1
minus.venn <-draw.pairwise.venn(349, 1335, 173) #venn diagram 2
a <-sample(1:10000,3000)
b <-sample(5000:15000,3000)
排列 basemap 和网格图
library(grid)
library(gridBase)
# Layout of plots - 4 plots of equal size
layout(matrix(1:4, 2, byrow = TRUE))
# First & second base plot
hist(a)
hist(b)
# Grid regions of current base plot (ie from frame)
frame()
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)
grid.draw(plus.venn)
popViewport(3)
# fourth
frame()
vps <- baseViewports()
pushViewport(vps$inner, vps$figure, vps$plot)
grid.draw(minus.venn)
popViewport(3)
其中产生
或者使用
ggplot2
生成直方图并使用 grid.arrange
进行组合library(ggplot2)
library(gridExtra)
grid.arrange(qplot(a, geom="histogram") + theme_classic(),
qplot(b, geom="histogram") + theme_classic(),
grobTree(plus.venn),
grobTree(minus.venn),
ncol=2)
其中产生
您可以将任一方法的布局更改为您想要的。
关于r - 多图中的维恩图,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33269538/
10-12 23:29