Skip to content

Commit 4f038f5

Browse files
spec: add upset-basic specification (#5259)
## New Specification: `upset-basic` Related to #5250 --- ### specification.md # upset-basic: UpSet Plot for Multi-Set Intersection Analysis ## Description An UpSet plot visualizes intersections of multiple sets using a matrix-based layout that scales far better than Venn diagrams beyond 3 sets. A horizontal bar chart shows individual set sizes, a dot-matrix indicates which sets participate in each intersection, and a vertical bar chart above shows the intersection cardinality. This is the modern standard for set intersection analysis, making complex overlaps between many sets immediately readable. ## Applications - Comparing gene sets from multiple genomic experiments to identify shared and unique biological pathways - Analyzing feature overlap across machine learning model versions to understand model evolution - Visualizing user segments across multiple marketing criteria to find high-value audience intersections - Showing bug categories that overlap across software modules to prioritize cross-cutting issues ## Data - `element` (str) — unique item identifier - `sets` (list[str]) — which sets this element belongs to (each element can belong to one or more sets) - Size: 4–15 sets, 100–10,000 elements - Example: genomic experiment results where each gene (element) belongs to one or more differential expression sets ## Notes - Intersections should be sorted by size (descending) by default, with degree-based sorting as an alternative - Connected dots in the matrix show which sets form each intersection; unconnected dots indicate non-membership - Horizontal bars on the left show individual set sizes (total members per set) - Vertical bars on top show intersection cardinality (number of elements in each specific intersection) - Matrix rows represent sets; columns represent unique intersections - Lines connecting dots in the same column should be clearly visible to indicate set combinations - Consider using color or shading to distinguish intersection degree (number of sets involved) - Superior to Venn diagrams for more than 3 sets; complements the existing venn-basic specification --- **Next:** Add `approved` label to the issue to merge this PR. --- :robot: *[spec-create workflow](https://github.com/MarkusNeusinger/pyplots/actions/runs/24290845422)* Co-authored-by: github-actions[bot] <github-actions[bot]@users.noreply.github.com>
1 parent f2f79bf commit 4f038f5

File tree

2 files changed

+59
-0
lines changed

2 files changed

+59
-0
lines changed

plots/upset-basic/specification.md

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
# upset-basic: UpSet Plot for Multi-Set Intersection Analysis
2+
3+
## Description
4+
5+
An UpSet plot visualizes intersections of multiple sets using a matrix-based layout that scales far better than Venn diagrams beyond 3 sets. A horizontal bar chart shows individual set sizes, a dot-matrix indicates which sets participate in each intersection, and a vertical bar chart above shows the intersection cardinality. This is the modern standard for set intersection analysis, making complex overlaps between many sets immediately readable.
6+
7+
## Applications
8+
9+
- Comparing gene sets from multiple genomic experiments to identify shared and unique biological pathways
10+
- Analyzing feature overlap across machine learning model versions to understand model evolution
11+
- Visualizing user segments across multiple marketing criteria to find high-value audience intersections
12+
- Showing bug categories that overlap across software modules to prioritize cross-cutting issues
13+
14+
## Data
15+
16+
- `element` (str) — unique item identifier
17+
- `sets` (list[str]) — which sets this element belongs to (each element can belong to one or more sets)
18+
- Size: 4–15 sets, 100–10,000 elements
19+
- Example: genomic experiment results where each gene (element) belongs to one or more differential expression sets
20+
21+
## Notes
22+
23+
- Intersections should be sorted by size (descending) by default, with degree-based sorting as an alternative
24+
- Connected dots in the matrix show which sets form each intersection; unconnected dots indicate non-membership
25+
- Horizontal bars on the left show individual set sizes (total members per set)
26+
- Vertical bars on top show intersection cardinality (number of elements in each specific intersection)
27+
- Matrix rows represent sets; columns represent unique intersections
28+
- Lines connecting dots in the same column should be clearly visible to indicate set combinations
29+
- Consider using color or shading to distinguish intersection degree (number of sets involved)
30+
- Superior to Venn diagrams for more than 3 sets; complements the existing venn-basic specification
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
# Specification-level metadata for upset-basic
2+
# Auto-synced to PostgreSQL on push to main
3+
4+
spec_id: upset-basic
5+
title: UpSet Plot for Multi-Set Intersection Analysis
6+
7+
# Specification tracking
8+
created: "2026-04-11T20:23:33Z"
9+
updated: null
10+
issue: 5250
11+
suggested: MarkusNeusinger
12+
13+
# Classification tags (applies to all library implementations)
14+
# See docs/reference/tagging-system.md for detailed guidelines
15+
tags:
16+
plot_type:
17+
- upset
18+
- bar
19+
data_type:
20+
- categorical
21+
- numeric
22+
domain:
23+
- general
24+
- science
25+
- research
26+
features:
27+
- basic
28+
- comparison
29+
- multi

0 commit comments

Comments
 (0)