绘制许多群体的维恩数字

时间:2017-07-29 04:39:39

标签: r intersection venn-diagram

我有12个班级的数据:

df <- data.frame(id=c(paste("a",1:1000,sep="."),
                      paste("b",1:2000,sep="."),
                      paste("c",1:100,sep="."),
                      paste("d",1:500,sep="."),
                      paste("e",1:200,sep="."),
                      paste("f",1:550,sep="."),
                      paste("g",1:2100,sep="."),
                      paste("h",1:900,sep="."),
                      paste("i",1:200,sep="."),
                      paste("j",1:3500,sep="."),
                      paste("k",1:4100,sep="."),
                      paste("l",1:2100,sep=".")),
                 class=c(rep("A",1000),
                         rep("B",2000),
                         rep("C",100),
                         rep("D",500),
                         rep("E",200),
                         rep("F",550),
                         rep("G",2100),
                         rep("H",900),
                         rep("I",200),
                         rep("J",3500),
                         rep("K",4100),
                         rep("L",2100)))

我想在R中绘制维恩图。

使用venneuler package

plot(venneuler(as.matrix(df)))

enter image description here

有点令人惊讶,因为df在任何类之间都没有重叠。

任何想法是否可以避免或者是否有任何其他维恩图绘制能够处理如此大量类的R包?

1 个答案:

答案 0 :(得分:1)

使用eulerr(我开发的软件包)可以实现这一点,尽管在给定大量可能的组合组合时速度非常慢。

vec <- as.vector(table(df$class))
names(vec) <- unique(df$class)
plot(eulerr::euler(vec))

enter image description here