2017-07-29 4 views
0

Ich habe Daten aus 12 Klassen:Plotten ein Venn digram vielen Gruppen

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

, für die ich ein Venn-Diagramm in R darstellen möge.

Mit der venneulerpackage:

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

enter image description here

Art überraschend, da df hat keine Überschneidungen zwischen irgendeiner der Klassen.

Eine Idee, wenn dies vermieden werden kann oder von einem anderen Venn-Diagramm plotten R Paket, das in der Lage ist, so viele Klassen zu behandeln?

Antwort

1

Dies ist möglich mit eulerr (ein Paket, das ich entwickelt habe), obwohl es unglaublich langsam ist angesichts der großen Menge an möglichen Kombinationen.

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

enter image description here

Verwandte Themen