Hi, I have been trying to draw a proportional venn diagram in R. I find that it is in no way proportional, it doesnt even reflect the truth. These are not my numbers but say they were: vd <- venneuler(c(A=10, B=6, "A&B"=6)) plot(vd) This, in theory, should draw B that is covered by A (since the overlap is 6, and the size of B is 6). This is not the case. It draws two sets A and B with a large overlap, but not a complete overlap.
What am I doing wrong? How can I draw something that represents the data?
many thanks
3 answers
Some combinations of set intersections are impossible to represent exactly with circles so some heuristics and approximations have to be used. Unfortunately, what the venneuler package uses leads to problems with large overlaps. The VennDiagram package seems to be doing a better job in this case.
Thank you all! I trid other packages and it works with any one of them!
It works perfectly well with "eulerr" package on R.
library(eulerr)
vd <- euler(c(A=10, B=6, "A&B"=6))
plot(vd)
You have to know a little basic set theory. Suppose you want to know the size of set A and set B. What is the union between A and B, denoted as A U B?
Using absolute terms, A U B= A + B - the intersection of A & B, or A 'upside down U' B.
You will also need to know how to do this for the VennDiagram package!!
Log in to answer this question.
I can't help much with Venneuler but I like BioVenn for drawing proportional Venn Diagrams.
A while back, I came up with a visualization called an Eulergrid that has been copied in some other packages. It's not a Venn, but it shows set overlaps in a proportional way.
In the past I've had similar issues with Venn diagrams and just switched to Upsets. UpSetR is a great implementation, see here for examples: https://github.com/hms-dbmi/UpSetR