绘制多组维恩图

Plotting a Venn digram of many groups

我有来自 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)))

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

是否知道这是否可以避免或任何其他维恩图绘制 R 能够处理如此大量 类 的程序包?

这可以通过 eulerr(我开发的一个包)实现,尽管考虑到大量可能的集合组合,它的速度非常慢。

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