Metadata-Version: 2.5
Name: plotly-upset
Version: 0.1.0
Summary: UpSet plot visualizations with Plotly — interactive set intersection plots with annotation tracks
Project-URL: Homepage, https://github.com/depictio/depictio/tree/main/packages/plotly-upset
Project-URL: Repository, https://github.com/depictio/depictio
Project-URL: Issues, https://github.com/depictio/depictio/issues
Author: Depictio Contributors
License-Expression: MIT
License-File: LICENSE
Keywords: bioinformatics,plotly,set-intersection,upset,visualization
Classifier: Development Status :: 3 - Alpha
Classifier: Intended Audience :: Science/Research
Classifier: License :: OSI Approved :: MIT License
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
Classifier: Topic :: Scientific/Engineering :: Visualization
Requires-Python: >=3.10
Requires-Dist: numpy>=1.22.0
Requires-Dist: pandas>=1.4.0
Requires-Dist: plotly>=6.9.0
Provides-Extra: dev
Requires-Dist: ipywidgets>=8.1.8; extra == 'dev'
Requires-Dist: jupyterlab>=4.6.2; extra == 'dev'
Requires-Dist: polars>=0.20.0; extra == 'dev'
Requires-Dist: pytest-cov>=4.0; extra == 'dev'
Requires-Dist: pytest>=9.1.1; extra == 'dev'
Provides-Extra: notebook
Requires-Dist: ipywidgets>=8.1.8; extra == 'notebook'
Requires-Dist: jupyterlab>=4.6.2; extra == 'notebook'
Provides-Extra: polars
Requires-Dist: polars>=0.20.0; extra == 'polars'
Description-Content-Type: text/markdown

# plotly-upset

UpSet plot visualizations with Plotly — interactive set intersection plots with annotation tracks.

## Installation

```bash
pip install plotly-upset
```

## Quick Start

```python
import pandas as pd
from plotly_upset import UpSetPlot

df = pd.DataFrame({
    "Set A": [1, 1, 0, 0, 1],
    "Set B": [1, 0, 1, 0, 1],
    "Set C": [0, 1, 1, 1, 0],
})

plot = UpSetPlot(df, title="Set Intersections")
fig = plot.to_plotly()
fig.show()
```

## Features

- Class-based API with `.to_plotly()` returning a native Plotly Figure
- Annotation tracks: box, violin, bar, scatter, categorical, stacked bar
- Sorting by cardinality, degree, or input order
- Filtering by intersection size and degree
- Title and subtitle support
- Pandas and Polars DataFrame input
- `from_sets()` convenience constructor
