具有多个数字的Rstudio Venn图

时间:2018-08-17 12:31:46

标签: r venn-diagram

我有两个数据集,其中即时计算该数据集中每个样本的数量。我想将两个数据集的每个样本的编号合并,然后使用R创建一个VennDiagram,其中最大的数据集的主要编号和括号中的较小的数据集编号。

我当前正在使用的R代码

grid.newpage()
temp <- draw.triple.venn(area1 = 428, 
             area2 = 145, 
             area3 = 303, 
             n12 = 26, 
             n23 = 16, 
             n13 = 14, 
             n123 = 9,
             category = c("text1", "text2", "text3"),
             scaled=FALSE,
             ext.text=FALSE)

grid.draw(temp)
pdf(file="figure1.pdf")
grid.draw(temp)
dev.off()

我得到的结果

enter image description here

我想创造什么

enter image description here

我已经看过eulerr软件包和Venn图软件包,但是我似乎无法弄清楚是否有办法使之成为可能。

非常感谢所有帮助。非常感谢。

1 个答案:

答案 0 :(得分:1)

不确定“小型”数据集的外观,但这可以解决问题

在这里,您可以使用自定义标签向网格中添加迹线,并且y坐标与“大”数据集的y坐标成比例。

library(VennDiagram)

temp <- draw.triple.venn(area1 = 428, 
                     area2 = 145, 
                     area3 = 303, 
                     n12 = 26, 
                     n23 = 16, 
                     n13 = 14, 
                     n123 = 9,
                     category = c("text1", "text2", "text3"),
                     scaled=FALSE,
                     ext.text=FALSE)


temp[[17]] <- temp[[13]]
temp[[17]]$y <- temp[[13]]$y * 0.8
temp[[17]]$label <- '(3)'

temp[[18]] <- temp[[9]]
temp[[18]]$y <- temp[[9]]$y * 0.95
temp[[18]]$label <- '(4)'

temp[[19]] <- temp[[7]]
temp[[19]]$y <- temp[[7]]$y * 0.95
temp[[19]]$label <- '(5)'

grid.draw(temp)