0

I have data from 12 classes:

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)))

for which I want to plot a Venn diagram in R.

Using the venneuler package:

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

enter image description here

Kind of surprising since df has no overlaps between any of the classes.

Any idea if this can be avoided or of any other Venn diagram plotting R package that's able to handle such a large number of classes?

dan
  • 6,048
  • 10
  • 57
  • 125

1 Answers1

1

This is possible with eulerr (a package that I have developed), although it is incredibly slow given the large amount of possible set combinations.

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

enter image description here

Johan Larsson
  • 3,496
  • 18
  • 34