Draw Lex et al.'s UpSet plots with Pandas and Matplotlib
Project description
This is another Python implementation of UpSet plots by Lex et al. [Lex2014].
It tries to provide a simple, interface backed by an extensible, object-oriented design.
The basic input format is a pandas.Series containing counts corresponding to set intersection sizes. The index indicates which rows pertain to which sets, by having multiple boolean indices, like example in the following:
>>> from upsetplot import generate_data >>> example = generate_data(aggregated=True) >>> example # doctest: +NORMALIZE_WHITESPACE set0 set1 set2 False False False 56 True 283 True False 1279 True 5882 True False False 24 True 90 True False 429 True 1957 Name: value, dtype: int64
Then:
>>> from upsetplot import plot >>> plot(example) # doctest: +SKIP
makes:
Why an alternative to py-upset?
Probably for petty reasons. It appeared py-upset was not being maintained. Its input format was undocumented, inefficient and, IMO, inappropriate. It did not facilitate showing plots of each set intersection distribution as in Lex et al’s work introducing UpSet plots. Nor did it include the horizontal bar plots illustrated there. It did not support Python 2. I decided it would be easier to construct a cleaner version than to fix it.
References
Alexander Lex, Nils Gehlenborg, Hendrik Strobelt, Romain Vuillemot, Hanspeter Pfister, UpSet: Visualization of Intersecting Sets, IEEE Transactions on Visualization and Computer Graphics (InfoVis ‘14), vol. 20, no. 12, pp. 1983–1992, 2014. doi: doi.org/10.1109/TVCG.2014.2346248
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file UpSetPlot-0.1a3.tar.gz
.
File metadata
- Download URL: UpSetPlot-0.1a3.tar.gz
- Upload date:
- Size: 7.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b8cc5b78d4f9b7a130825494ece101a43995f5a375b5eb1ea46e3b81861c190c |
|
MD5 | 3bfead75fb4ddb49164dc2e4306d61c7 |
|
BLAKE2b-256 | 93ced3b782981e08d1668b0c19a9df5b3106e8f3a5389110319bab885bdf5731 |