LabCanvas
Free account · save your work, full figure editorSign up free

Venn diagram and UpSet plot maker

Paste two or more lists, such as gene names or IDs, or type the set sizes and overlaps, and the tool draws a Venn diagram and lists the members of every overlap. Two sets get circles with exactly proportional areas; three sets get the best-fitting circles, with the fit error reported; four and five sets get the classic ellipse diagrams with every region; any number of sets can be shown as an UpSet plot. Download SVG or PNG at 150–600 dpi, the intersections as CSV, or open the diagram in the LabCanvas editor as editable vectors.

What it does
Counts every intersection of 2 or more lists, draws an area-proportional Venn diagram (2–3 sets), a classic 4- or 5-set Venn diagram or an UpSet plot, and lists the members of each region.
Formula
πri2=|Si|A∩(d)=r12arccos⁡d2+r12−r222dr1+r22arccos⁡d2+r22−r122dr2−12kk=(−d+r1+r2)(d+r1−r2)×(d−r1+r2)(d+r1+r2)solve A∩(d)=|S1∩S2| for d
Example
Lists of 40 and 34 genes sharing 25: r₁ = √(40/π) = 3.568, r₂ = √(34/π) = 3.290, and the lens area equals 25 when the centres are d = 1.746 apart (same units).

Last updated

FreeNo sign-upRuns in your browserFigures

Loading Venn and UpSet diagram maker…

At a glance

Venn and UpSet diagram maker at a glance
Input2–16 lists (pasted, CSV/TSV upload, Excel table or 0/1 matrix), or sizes and overlaps for 2–3 sets
Venn diagrams2 sets: exact proportional circles; 3 sets: least-squares circle fit with stress and diagError, or classic; 4–5 sets: classic ellipses
UpSet plotAny number of sets; sort by size, degree or sets; exclusive or inclusive counts; hide empty, minimum size
IntersectionsMembers of every region, exclusive or inclusive; CSV, by-column CSV, membership matrix
ExportSVG, PNG at 150–600 dpi, or editable vectors in the LabCanvas editor
Runs inYour web browser; nothing is uploaded
PriceFree, no account needed

What it does

How to use the venn and UpSet diagram maker

  1. Paste the listsName each set and paste its items, or upload a CSV with one column per set. Use “Counts” if you only have the numbers.
  2. Choose the diagramFor 2–3 sets choose area-proportional or classic circles; 4–5 sets get ellipses; switch to an UpSet plot for many sets or to read sizes accurately.
  3. Export or editDownload SVG or PNG, copy the members of each intersection, or open the diagram in the LabCanvas editor to finish the figure.

How it works

Counting. Each item is matched across lists (after trimming spaces; duplicates within a list count once; optionally ignoring case) and given the set of lists it appears in. The exclusive count of a combination, such as “A ∩ B only”, is the number of items in exactly those lists; these are the regions a Venn diagram draws, and they add up to the number of unique items. The inclusive count, |A∩B|, also includes items that are in further lists. The two are linked by inclusion–exclusion: for three sets, A ∩ B only =|A∩B|−|A∩B∩C|, and A only =|A|−|A∩B|−|A∩C|+|A∩B∩C|. When you type sizes and overlaps, the tool uses these to find the regions and rejects numbers that would make a region negative.

Two sets, exactly. Each circle’s area equals its set size, πri2=|Si|. The overlap of two circles whose centres are d apart is the lens A∩(d)=r12arccos⁡d2+r12−r222dr1 +r22arccos⁡d2+r22−r122dr2 −12k, where k=(−d+r1+r2) ×(d+r1−r2) ×(d−r1+r2) ×(d+r1+r2). The lens area falls steadily from the smaller circle’s area at d=|r1−r2| to 0 at d=r1+r2. Bisection finds the d where it equals the shared count, so all three regions have exactly the right areas.

Three sets, by fitting. Three circles have six free numbers once position and rotation are fixed (three radii and three distances) but seven regions to match, so most data cannot be drawn exactly with circles (Chen and Boutros 2011; Micallef and Rodgers 2014). Following eulerr (Larsson and Gustafsson 2018) and venneuler (Wilkinson 2012), the tool starts from the distances that give each pair its overlap, then adjusts the radii and centres to minimise the sum of squared differences between drawn and wanted region areas, ∑r(a^r−ar)2, with Nelder–Mead from several starts. Region areas are computed exactly from the circle geometry (polygon plus circular segments). It then reports two measures: stress, ∑r(ar−βa^r)2/∑rar2 with β the least-squares scale (venneuler’s measure; 0 is perfect), and diagError, the largest difference between a region’s share of the drawing and its share of the items (eulerAPE and eulerr’s measure). A region that the circles cannot show at all is listed under the diagram, never silently dropped.

Classic layouts. The non-proportional option uses equal circles for 2–3 sets, Venn’s arrangement of four ellipses for 4 sets and Grünbaum’s (1975) five congruent ellipses with five-fold symmetry for 5 sets, so every one of the 3, 7, 15 or 31 regions exists. Each count is written at the point of its region farthest from any edge. With six or more sets no ellipse Venn diagram exists, and UpSet plots are clearer anyway.

UpSet plots (Lex et al. 2014; Conway et al. 2017) show each intersection as a column: a bar for its size above, and below it a matrix whose filled dots mark the sets involved, joined by a line. Horizontal bars give each set’s size. By default the bars are exclusive counts, as in UpSetR, so every item is counted once; inclusive counts are an option.

Sources: Lex A, Gehlenborg N, Strobelt H, Vuillemot R, Pfister H. UpSet: visualization of intersecting sets. IEEE Trans Vis Comput Graph 2014;20:1983–1992, doi:10.1109/TVCG.2014.2346248. Conway JR, Lex A, Gehlenborg N. UpSetR: an R package for the visualization of intersecting sets and their properties. Bioinformatics 2017;33:2938–2940, doi:10.1093/bioinformatics/btx364. Wilkinson L. Exact and approximate area-proportional circular Venn and Euler diagrams. IEEE Trans Vis Comput Graph 2012;18:321–331, doi:10.1109/TVCG.2011.56. Larsson J, Gustafsson P. A case study in fitting area-proportional Euler diagrams with ellipses using eulerr. Proceedings of the International Workshop on Set Visualization and Reasoning 2018, CEUR Workshop Proceedings 2116:84–91, ceur-ws.org/Vol-2116/paper7.pdf. Micallef L, Rodgers P. eulerAPE: drawing area-proportional 3-Venn diagrams using ellipses. PLoS ONE 2014;9:e101717, doi:10.1371/journal.pone.0101717. Chen H, Boutros PC. VennDiagram: a package for the generation of highly-customizable Venn and Euler diagrams in R. BMC Bioinformatics 2011;12:35, doi:10.1186/1471-2105-12-35. Grünbaum B. Venn diagrams and independent families of sets. Math Mag 1975;48:12–23, doi:10.1080/0025570X.1975.11976431.

Worked example: three hypoxia gene lists

The built-in example is three illustrative lists from a hypoxia study: 40 genes up after 24 h of hypoxia, 34 HIF1A ChIP-seq targets and 38 proteins up by proteomics. The gene names are real; the lists are made up for the example.

  1. Count the regions. 64 genes are in at least one list. Exclusive counts: hypoxia only 10, ChIP only 5, proteomics only 15, hypoxia ∩ ChIP only 11, hypoxia ∩ proteomics only 5, ChIP ∩ proteomics only 4, all three 14. They add up to 64. Inclusive: hypoxia ∩ ChIP =11+14=25, hypoxia ∩ proteomics =19, ChIP ∩ proteomics =18.
  2. Two circles exactly. For hypoxia and ChIP alone, the radii are r1=40/π=3.568 and r2=34/π=3.290 (in units where the area is the gene count). The lens area is 25 at d=1.746: solving the lens equation by bisection gives that distance, and putting it back gives an overlap of 25.000.
  3. Three circles by fitting. The best circles give stress 0.0048 and diagError 2.0 percentage points. The largest error is ChIP ∩ proteomics only: 4 of 64 genes (6.3 %) but 4.3 % of the drawn area; hypoxia ∩ proteomics only gets 6.4 % for 7.8 %. All other regions are within 1.1 points. Fitting the same loss with SciPy gives the same stress; matplotlib-venn’s layouts give 0.0069 (cost-based) and 0.0057 (default).
  4. Read the members. The 14 genes in all three lists are VEGFA, CA9, SLC2A1, PGK1, BNIP3, LDHA, NDRG1, P4HA1, ALDOA, ENO1, HK2, GPI, TPI1 and PGAM1, the core hypoxia-response genes. The exclusive table lists them once, under “all 3”; the inclusive row “Hypoxia ∩ HIF1A ChIP-seq” lists them again with the 11 genes that are only in those two lists.
Which diagram for which data
SetsBest choiceNotes
2Area-proportional VennAlways exact
3Area-proportional Venn if the error is small; otherwise classic Venn or UpSetCheck the stress and diagError under the diagram
4–5Classic ellipse Venn, or UpSetAreas are not to scale; read the numbers
6 or moreUpSet plotVenn diagrams with every region become unreadable

Frequently asked questions

How do I make a Venn diagram from gene lists?

Paste each list (one gene per line or comma-separated) into its own box and name the sets. The diagram, the counts and the members of every overlap appear as you type. Download SVG or PNG, copy the table of intersections, or open the diagram in the LabCanvas editor.

Why is my 3-set Venn diagram not exact?

Three circles cannot match seven region areas in general: once you fix the position and rotation, three circles have only six free numbers (three radii and three distances) for seven regions, and circles also force some regions to appear or vanish together. The tool finds the circles with the smallest squared area error and reports it as stress and diagError (the largest error in a region’s share). If the error is more than a few percentage points, read the numbers, switch to the classic layout, or use an UpSet plot. Ellipses can fit more data exactly (eulerAPE, eulerr).

What is an area-proportional Venn diagram?

One where each region’s area is proportional to the number of items in it, also called a scaled or Euler diagram. For two sets this is always possible with circles; for three it is usually approximate.

What is an UpSet plot?

A chart for set intersections (Lex et al. 2014): each column is one intersection, with a bar showing its size and dots below marking which sets it involves. It stays readable for many sets, where Venn diagrams fail, and its bars are easier to compare than Venn areas.

How do I make a 4-set or 5-set Venn diagram?

Paste four or five lists. The tool draws Venn’s four-ellipse diagram or Grünbaum’s five-ellipse diagram, in which all 15 or 31 regions exist, and writes each count inside its region. These are not area-proportional; for sizes you can compare, use the UpSet plot.

What is the difference between exclusive and inclusive intersections?

Exclusive (“A ∩ B only”) counts items in exactly those sets and no others: these are the regions of the Venn diagram and they add up to the total. Inclusive (A∩B) counts every item in both A and B, including those also in C. The inclusive count of A ∩ B equals “A ∩ B only” plus “A ∩ B ∩ C”.

How do I get the list of genes in an overlap?

The table under the diagram lists the members of every region. Switch between exclusive and inclusive, then copy it or download a CSV (one row per intersection, a CSV with one column per intersection, or a 0/1 membership matrix for R or Python).

Can I make the diagram from numbers only?

Yes. Choose “Counts”, pick 2 or 3 sets, and type either the set sizes and overlaps (for example |A| = 120, |B| = 95, |A ∩ B| = 40) or the count of each region. The tool checks that the numbers are possible.

Can I upload an Excel or CSV file?

Save the sheet as CSV (or copy the columns) with one column per set and the set names in the first row, then upload it or paste it into “Paste a table”. A 0/1 membership matrix with items in the first column also works.

Is my data uploaded?

No. Lists are compared and diagrams drawn in your browser.

Put the Venn diagram in a figure

Open it in the LabCanvas editor as editable shapes and text, next to your plots and images, with journal sizes and fonts.

Open the figure editor