UpSetPlot
Draw Lex et al.'s UpSet plots with Pandas and Matplotlib
Decision gist · record as of 2026-08-14
Yes, if you need to visualize set intersections and overlaps in categorical data. UpSetPlot is stable, permissive, and has no known vulnerabilities. The main caveat is that the package is dormant (957 days since release), so compatibility with very recent pandas or matplotlib versions is unverified; test against your environment before relying on it in production.AI-flagged interpretation of the facts on this page — verify before relying
Before you install
- Requires pandas and matplotlib >= 2.0; seaborn is needed only for the add_catplot method.
- Installation requires pandas and matplotlib; the package is dormant (957 days since last release) but carries no known vulnerabilities and has permissive licensing.
License · maintenance · safety
BSD-3-Clause (permissive) — BSD-3-Clause is permissive; you can use, modify, and distribute UpSetPlot with minimal restrictions, provided you include the license notice.
last release 2023-12-31 (957 days)
0 known vulnerabilities (OSV.dev, 2026-08-14) · 91,161 downloads/mo, #13,534 on PyPI
Alternatives
Verify before relying
pip install upsetplot
from upsetplot import generate_counts, plot
example = generate_counts()
plot(example)- Whether the package is actively maintained or has been superseded by another implementation.
- Compatibility with recent versions of pandas and matplotlib beyond the stated requirements.
What it is and what it does
UpSetPlot is a Python library for visualizing set overlaps and categorical intersections. It implements the UpSet plot design from Lex et al., which represents set intersections as a matrix of horizontal or vertical bars, making it easier to read than traditional Venn diagrams when dealing with many categories or complex overlaps.
The library accepts data in multiple formats—most commonly a pandas Series indexed by boolean category membership, or a DataFrame to show distributions within each subset. It provides helper functions like from_memberships and from_contents to transform raw data into the required format, then renders publication-ready plots via matplotlib. The design is extensible and object-oriented, allowing customization of plot appearance and behavior.
Use it for
- Visualize overlaps in genomic or biological datasets where multiple categories (genes, samples, conditions) intersect.
- Display membership patterns in survey or classification data where items belong to multiple categories simultaneously.
- Compare set intersections in machine learning experiments where predictions or labels overlap across classes.
- Show distribution of a continuous variable (e.g., expression level) across different category combinations.
- Create publication-ready plots for research papers presenting categorical or set-based analysis results.
Worth the install?
AI-flagged interpretation of the facts on this page. Verify before relying on it.
Yes, if you need to visualize set intersections and overlaps in categorical data.
UpSetPlot is stable, permissive, and has no known vulnerabilities. The main caveat is that the package is dormant (957 days since release), so compatibility with very recent pandas or matplotlib versions is unverified; test against your environment before relying on it in production.
Install
upsetplot on PyPI
Before you install
Installation requires pandas and matplotlib; the package is dormant (957 days since last release) but carries no known vulnerabilities and has permissive licensing.
Requires pandas and matplotlib >= 2.0; seaborn is needed only for the add_catplot method.
License in practice
BSD-3-Clause is permissive; you can use, modify, and distribute UpSetPlot with minimal restrictions, provided you include the license notice.
Quickstart
pip install upsetplot
from upsetplot import generate_counts, plot
example = generate_counts()
plot(example)
Verify before relying
- Whether the package is actively maintained or has been superseded by another implementation.
- Compatibility with recent versions of pandas and matplotlib beyond the stated requirements.
Package facts
| License | BSD-3-Clause permissive |
| Python support | Not specified |
| Install friction | High. Source build required |
| Runtime dependencies | None |
| Maintenance | Dormant 957 days since the last release |
| First released | |
| Downloads | 91,161 / month, #13,534 on PyPI 30-day window, as of 2026-08-14 |
| Known vulnerabilities | None known OSV.dev, checked 2026-08-14 |
| Classifiers | Intended Audience :: Science/ResearchLicense :: OSI Approved :: BSD LicenseProgramming Language :: Python :: 3Programming Language :: Python :: 3.10Programming Language :: Python :: 3.6Topic :: Scientific/Engineering :: Visualization |
Evidence: UpSetPlot-0.9.0.tar.gz
Tags
Let your AI agent find packages like this
Example. Real query, live index.
You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.
wish › “set intersection visualization”
- UpSetPlotUpSetPlot generates visualizations of set overlaps and intersections…
- matplotlib-vennPlots area-weighted two- and three-circle Venn diagrams using…
- orderly-setProvides multiple ordered set implementations (OrderedSet, StableSet,…
Give your agent the search over MCP, or paste the wish link into any chat.
More Visualization packages
matplotlib creates static, animated, and interactive visualizations in Python, producing publication-quality figures in multiple formats for scripts, shells, web servers, and graphical interfaces.
Install it if you need to visualize data, generate publication-quality figures, or embed plots in applications.
ContourPy calculates contours of 2D quadrilateral grids using C++11 algorithms wrapped in Python, offering serial and multithreaded implementations without requiring Matplotlib as a dependency.
Plotly is an interactive, browser-based graphing library that creates charts and visualizations from Python, rendering them as HTML that can be viewed in Jupyter notebooks, standalone files, or web applications.
Generates DOT language source code for graph structures and renders them using the Graphviz graph drawing software installed on your system.
Install it if you need to generate or render graphs from Python.
Streamlit transforms Python scripts into interactive web applications with minimal code, enabling rapid development of data dashboards, reports, and chat interfaces without requiring web development expertise.
Leather is a lightweight Python charting library for quick, no-frills data visualization. It generates charts without requiring perfect styling or extensive configuration.
See also matplotlib-venn · adjustText · SciencePlots · facets-overview · plotnine · mizani · ridgeplot · plotext · scikit-plot · dvc-render