UpSet Plot Maker

Compare exact intersections across 2–8 sets using unique element IDs and binary membership. Keep full set sizes visible while choosing which intersection columns to show.

Loading the UpSet editor…

Worked examples

Published demonstration

three published sets

Thirteen elements are partitioned into seven exact intersections; full set sizes are 9, 5 and 9.

Illustrative list membership

four gene lists

Eight illustrative elements have eight distinct membership patterns; list sizes are 6, 4, 4 and 3.

Illustrative survey

survey membership

Six illustrative respondents include five in the union, one outside all sets and an empty fifth set.

How to make an UpSet plot

  1. Paste or open a membership table with ID first and one binary column per set, or download the Excel template.
  2. Correct duplicate IDs and unknown memberships using the source-row messages. Check the total, union and outside-all-sets counts.
  3. Choose the intersection order, Top intersections and minimum count. Omitted columns never change the full set sizes.
  4. Set journal, dimensions, font, title and panel label; use Full view to inspect the matrix and labels.
  5. Export SVG/PDF/PNG/TIFF, save a local project or download all intersection counts. R code and Methods text document the exact current input and display selection.

Data format and interpretation

ID      Set A   Set B   Set C
item-1  1       0       0
item-2  1       1       0
item-3  1       1       1
item-4  0       0       0

The first three rows belong to three different exact patterns. The last is outside all sets. IDs remain case-sensitive strings after trimming; leading zeros already lost in a spreadsheet cannot be reconstructed. Use at most 20,000 element rows; no sampling is performed. This increment accepts element memberships, not supplied aggregate intersection counts or named-list imports.

For supplied category values use Bar Chart Maker; for raw measurements use Scientific Plot Maker; for transitions between stages use Alluvial Diagram Maker.

Method and numerical checks

Counts are checked against base R and the published UpSetR three-set demonstration. The matrix approach follows Lex et al., UpSet: Visualization of Intersecting Sets (2014), doi:10.1109/TVCG.2014.2346248. The demonstration source is the UpSetR Basic Usage vignette. No inferential test is performed.

Frequently asked questions

What does an UpSet plot show?

Bars count exact intersections across all supplied sets. Filled dots indicate membership; inactive dots mean absence from those sets. Set-size bars use the full table, even when some intersection columns are hidden.

How should I prepare the data?

Use ID as the first header, followed by 2–8 distinct set names. Give each element one unique ID and enter 0/1 or TRUE/FALSE in every membership cell. Blank and NA are unknown, not absence. Files stay in your browser.

Are these inclusive or exclusive intersections?

They are exact, exclusive intersections. A column active in A and B but inactive in C counts elements in A and B that are not in C. Inclusive overlap, where membership in C is unspecified, is not computed.

What happens to duplicate IDs or missing memberships?

Duplicate IDs, blank IDs and unknown membership cells block the analysis and list source rows for correction. Distinct elements with the same membership pattern are valid and each contributes one count. Fully blank rows are skipped and counted.

Why do the visible counts not add up to the total?

Top intersections and minimum count filter only the view. Outside-all-sets rows are hidden by default. The reading summary reports represented and omitted elements, and the full intersection table and CSV retain all observed patterns. Full set sizes never change with these filters.

Can I show elements outside all sets or an empty set?

Yes. Empty sets retain a zero-size row. Show none of these sets allows the all-zero pattern to appear with an explicit None label. If filters hide every pattern, a corrective message replaces the figure while valid projects and numerical output remain available.

Does the tool run a statistical test or run R online?

No. It computes integer membership counts, not enrichment or significance. The downloadable base-R script reproduces numerical results and display selection when run locally. Generating it does not execute R or recreate identical artwork.