Since you are in R, consider using the UpsetR library. It doesn't make Venn diagrams but it helps to visualize overlaps between any number of groups.

http://gehlenborglab.org/research/projects/upsetr/#:~:text=UpSetR%20is%20an%20R%20package,based%20on%20groupings%20and%20queries.

Answer from swbarnes2 on Stack Exchange
🌐
CRAN
cran.r-project.org › web › packages › eulerr › vignettes › venn-diagrams.html
Venn diagrams with eulerr - CRAN - R Project
April 20, 2026 - An area-proportional Euler diagram is often much more intuitive and, for relatively sparse inputs, much easier to interpret. The property of being area-proportional may sometimes, however, be treacherous, at least if the viewer isn’t advised of the diagram’s faults. In such instances, it is often better to give up on area-proportionality and use a Venn ...
🌐
Jolars
jolars.github.io › eulerr
Area-Proportional Euler and Venn Diagrams with Ellipses • eulerr
Euler diagrams are Venn diagrams without the requirement that all set interactions be present (whether they are empty or not), which means that, depending on input, eulerr sometimes produces Venn diagrams and sometimes not.
🌐
CRAN
cran.r-project.org › web › packages › eulerr › vignettes › gallery.html
A Gallery of Euler and Venn Diagrams
intersecting_inside <- euler(c( "A" = 15, "B" = 0, "C" = 0, "A&B" = 3, "A&C" = 3, "B&C" = 0, "A&B&C" = 2 )) plot( intersecting_inside, fills = list( fill = c( "lavenderblush2", "lightblue2", "lightsalmon", "orange", "steelblue4", "white", "plum2" ) ), legend = list(side = "right") )
Top answer
1 of 2
2

Since you are in R, consider using the UpsetR library. It doesn't make Venn diagrams but it helps to visualize overlaps between any number of groups.

http://gehlenborglab.org/research/projects/upsetr/#:~:text=UpSetR%20is%20an%20R%20package,based%20on%20groupings%20and%20queries.

2 of 2
0

You might consider different ways of using the venneuler package. I'm not super thrilled with its usability (or with the accuracy of the overlaps), but you can get it to make custom Venn diagrams.

Here is a thread with some suggestions along these lines.

Below is some sample R code that I slightly modified from an old project that I used to make a 3-category Venn diagram.

I didn't run this to make sure that it works because of an irritating Java dependency issue on my OSX laptop that I don't feel like fixing right now, but as long as you have a JDK on your machine and can install the packages it should work.

# note irritating rJava dependency of venneuler
library(plotrix)
library(venneuler)

#A-B sharing: 200414
#B-C sharing: 17561
#A-C sharing: 16764
#All share 14201

# get coordinates for circles- replace as needed
# this function is supposed to plot stuff, but doesn't actually
ven = venneuler(c(C=48147-17561-16764+14201, 
                  B=347181-17561-200414+14201, 
                  A=325971-200414-16764+14201, 
                  "C&B"=17561, "B&A"=200414, "C&A"=16764, "A&B&C"=14201))

cats = c('A','B','C')

# note- this following only shows up in the .pdf printer, not in the X11 utility plotter
pdf('venn.pdf')
plot(c(-.5,1.5), c(-.5,1.5), type='n', xaxt='n', yaxt='n', bty='n', xlab='', ylab='')
draw.circle(ven$center[1,1], ven$center[1,2], ven$diameters[1],
        col = hsv(1,1,1,.5))
draw.circle(ven$center[2,1], ven$center[2,2], ven$diameters[2], 
            col = hsv(.5,1,1,.5))
draw.circle(ven$center[3,1], ven$center[3,2], ven$diameters[3],
            col = hsv(.1,1,1,.5))

text(ven$center[1,1]+.065, ven$center[1,2], labels=cats[3], cex=1.3)
text(ven$center[2,1], ven$center[2,2]-.2, labels=cats[2], cex=1.3)
text(ven$center[3,1], ven$center[3,2]+.2, labels=cats[1], cex=1.3)

dev.off()
🌐
Jolars
jolars.github.io › eulerr › reference › plot.euler.html
Plot Euler and Venn diagrams — plot.euler • eulerr
plot.euler.Rd · Plot diagrams fit with euler() and venn() using grid::Grid() graphics. This function sets up all the necessary plot parameters and computes the geometry of the diagram. plot.eulergram(), meanwhile, does the actual plotting of the diagram. Please see the Details section to learn about the individual settings for each argument.
🌐
GitHub
github.com › jolars › eulerr
GitHub - jolars/eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses · GitHub
Euler diagrams are Venn diagrams without the requirement that all set interactions be present (whether they are empty or not), which means that, depending on input, eulerr sometimes produces Venn diagrams and sometimes not.
Starred by 143 users
Forked by 20 users
Languages   R 83.5% | Rust 14.3% | TeX 1.8%
🌐
Rdrr.io
rdrr.io › cran › eulerr › man › venn.html
venn: Venn diagrams in eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses
May 29, 2024 - # The trivial version f1 <- venn(5, names = letters[1:5]) plot(f1) # Using data (a numeric vector) f2 <- venn(c(A = 1, "B&C" = 3, "A&D" = 0.3)) # The table method venn(pain, factor_names = FALSE) # Using grouping via the 'by' argument through the data.frame method venn(fruits, by = list(sex, age)) # Using the matrix method venn(organisms) # Using weights venn(organisms, weights = c(10, 20, 5, 4, 8, 9, 2)) # A venn diagram from a list of sample spaces (the list method) venn(plants[c("erigenia", "solanum", "cynodon")]) eulerr documentation built on May 29, 2024, 1:35 a.m. ... Package overview README.md A Gallery of Euler and Venn Diagrams eulerr under the hood Introducing eulerr Loss Functions Venn diagrams with eulerr Visualizing Euler diagrams with eulerr
🌐
CRAN
cran.r-project.org › web › packages › eulerr › vignettes › introduction.html
Introducing eulerr
April 20, 2026 - R features several packages that produce Euler diagrams; some of the more prominent ones (on CRAN) are ... The last of these (venneuler) was the primary inspiration for this package, along with the refinements that Fredrickson has presented on his blog and made available in his javascript venn.js.
Find elsewhere
🌐
CRAN
cran.r-project.org › web › packages › eulerr › eulerr.pdf pdf
Area-Proportional Euler and Venn Diagrams with Ellipses
May 8, 2026 - Micallef L, Rodgers P. eulerAPE: Drawing Area-Proportional 3-Venn Diagrams Using Ellipses.
🌐
Rdrr.io
rdrr.io › cran › eulerr › man › plot.euler.html
plot.euler: Plot Euler and Venn diagrams in eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses
May 29, 2024 - The only difference between plot.euler() and plot.venn() is that quantities is set to TRUE by default in the latter and FALSE in the former.
🌐
R Project
search.r-project.org › CRAN › refmans › eulerr › html › eulerr-package.html
R: eulerr: Area-Proportional Euler and Venn Diagrams with...
Generate area-proportional Euler diagrams using numerical optimization. An Euler diagram is a generalization of a Venn diagram, relaxing the criterion that all interactions need to be represented.
🌐
Andrew Wheeler
andrewpwheeler.com › 2015 › 07 › 21 › venn-diagrams-in-r-with-some-discussion
Venn diagrams in R (with some discussion!) | Andrew Wheeler
January 4, 2018 - The other day I had a set of three separate categories of binary data that I wanted to visualize with a Venn diagram (or a Euler) diagram of their intersections. I used the venneuler R package and it worked out pretty well. library(venneuler) MyVenn
🌐
BMC Bioinformatics
bmcbioinformatics.biomedcentral.com › articles › 10.1186 › 1471-2105-12-35
VennDiagram: a package for the generation of highly-customizable Venn and Euler diagrams in R | BMC Bioinformatics | Full Text
January 26, 2011 - To fill this gap we introduce VennDiagram, an R package that enables the automated generation of highly-customizable, high-resolution Venn diagrams with up to four sets and Euler diagrams with up to three sets.
🌐
Andrew Heiss
andrewheiss.com › blog › 2021 › 08 › 21 › r2-euler
Exploring R² and regression variance with Euler/Venn diagrams | Andrew Heiss – Andrew Heiss
We’ll use the eulerr package for this, since (1) it calculates proportional overlaps between circles (that’s the key technical difference between Venn and Euler diagram—Venn diagrams are supposed to have equally sized overlapping areas), ...
🌐
Bio-spring
venn.bio-spring.top › applications
Chapter 5 Applications of Venn, Euler and Upset plot | Venn Diagram cookbook in R
Euler diagram is area-proportional, and only show relevant relationships. Since human eye is less sensitive to area than to color, we believe that using color filling to show the difference between different regions is more suitable for ordinary biomedical studies. For example, ggVennDiagram support Venn plot up to 7 sets.
🌐
Reddit
reddit.com › r/venndiagrams › difference between venn diagrams and euler diagrams
r/VennDiagrams on Reddit: Difference between Venn diagrams and Euler Diagrams
July 7, 2021 -

It's still confusing to lot of people because both of the diagrams look very similar. Both of the diagrams are based on set theory. A Venn diagram shows all possible logical relationships between a collection of sets. But a Euler diagram only shows relationships that exist in the real world.
As a example if we take Animals superset with mammals and birds as subsets. A Venn diagram shows an intersection between the two sets even though that possibility doesn’t exist in the real world. Euler diagram, on the other hand, doesn’t show an intersection.

Hope this resolve the conflict between Venn and Euler Diagrams.

Source: https://creately.com/blog/diagrams/venn-diagrams-vs-euler-diagrams/

🌐
PubMed Central
pmc.ncbi.nlm.nih.gov › articles › PMC3041657
VennDiagram: a package for the generation of highly-customizable Venn and Euler diagrams in R - PMC
To fill this gap we introduce VennDiagram, an R package that enables the automated generation of highly-customizable, high-resolution Venn diagrams with up to four sets and Euler diagrams with up to three sets.
🌐
GitHub
github.com › uclahs-cds › package-VennDiagram
GitHub - uclahs-cds/package-VennDiagram: Generate High-Resolution Venn and Euler Plots · GitHub
VennDiagram is a R package for generating high-resolution, customizable Venn diagrams with up to four sets and Euler diagrams with up to three sets.
Starred by 8 users
Forked by 2 users
Languages   R