eulerr v6.0.0


Monthly downloads



Area-Proportional Euler and Venn Diagrams with Ellipses

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. Diagrams may be fit with ellipses and circles via a wide range of inputs and can be visualized in numerous ways.



Travis build
status AppVeyor Build
Status Coverage
Status CRAN
Badge Donate AppVeyor build

eulerr generates area-proportional Euler diagrams that display set relationships (intersections, unions, and disjoints) with circles or ellipses. 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.

With three or more sets intersecting, exact Euler diagrams are often impossible. For such cases eulerr attempts to provide a good approximation by numerically tuning the parameters of the ellipses or circles to minimize the error in the resulting diagram. Residuals and goodness of fit statistics are provided to assess whether the resulting diagram can be trusted.


CRAN version


Development version


Shiny app

eulerr is also available as a shiny app hosted at


# From Wilkinson 2012
fit <- euler(c("A" = 4, "B" = 6, "C" = 3, "D" = 2, "E" = 7, "F" = 3,
               "A&B" = 2, "A&F" = 2, "B&C" = 2, "B&D" = 1,
               "B&F" = 2, "C&D" = 1, "D&E" = 1, "E&F" = 1,
               "A&B&F" = 1, "B&C&D" = 1),
             shape = "ellipse")

We can inspect the goodness-of-fit metrics diagError and stress for the solution,

#> [1] 1.681159e-12
#> [1] 2.562909e-07

and plot it


Please see the introductory vignette for a brief introduction or eulerr under the hood for details.


eulerr is open source software, licensed under GPL-3.


eulerr uses semantic versioning.

Code of conduct

Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms.


eulerr would not be possible without Ben Frederickson’s work on venn.js or Leland Wilkinson’s venneuler.

Functions in eulerr

Name Description
get_constraints Set up constraints for optimization
compress_layout Compress an Euler layout
coef.euler Return ellipses from the euler object
is_false Check if object is strictly FALSE
diagError diagError
fruits Fruits
dummy_code Dummy code a data.frame
get_bounding_box Get the bounding box of an ellipse
eulerr_default_options Default options for eulerr
bit_indexr Binary indices
eulerr_deprecated Deprecated functions in package eulerr.
center_layout Center ellipses
eulerr-package eulerr: Area-Proportional Euler and Venn Diagrams with Ellipses
makeContent.EulerTags Avoid overlap for labels
eulerr_options Get or set global graphical parameters for eulerr
is_real Check if vector is a real (numeric non-integer)
ellipse Plotting coordinates for an ellipse
normalize_pars Normalize parameters (semiaxes and rotation)
error_plot Error plot for euler objects
is_integer Check if a vector is an integer
organisms Organisms
fitted.euler Fitted values of euler object
mix_colors Blend (average) colors
setup_gpar Setup gpars
pain Pain distribution data
plot.eulergram Print (plot) Euler diagram
plot.euler Plot Euler and Venn diagrams
replace_list Replace (refresh) a list
venn Venn diagrams
rescale Rescale values to new range
update_list Update list with input
plants Plants
poly_clip Polygon Clipping
regionError regionError
stress Stress
print.venn Print a summary of a Venn diagram
tally_combinations Tally set relationships
n_sets Get the number of sets in he input
normalize_angle Normalize an angle to [-pi, pi)
setup_tag Setup grobs for labels (labels, quantities, percentages)
setup_grobs Grobify Euler objects
separate_two_discs Optimize Distance Between Circles Based On Overlap
print.euler Print a summary of an Euler diagram
skyline_pack Skyline packing algorithm
setup_geometry Compute geometries and label locations
euler Area-proportional Euler diagrams
No Results!

Vignettes of eulerr

No Results!

Last month downloads


LinkingTo Rcpp (>= 0.12.12), RcppArmadillo (>= 0.7.600.1.0)
License GPL-3
Encoding UTF-8
LazyData true
VignetteBuilder knitr
RoxygenNote 6.1.1
Language en-US
NeedsCompilation yes
Packaged 2019-09-27 20:50:17 UTC; johan
Repository CRAN
Date/Publication 2019-09-27 21:10:02 UTC

Include our badge in your README