{ "info": { "author": "Joel Nothman", "author_email": "joel.nothman@gmail.com", "bugtrack_url": null, "classifiers": [ "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "UpSetPlot documentation\n============================\n\n|version| |licence| |py-versions|\n\n|issues| |build| |docs| |coverage|\n\nThis is another Python implementation of UpSet plots by Lex et al. [Lex2014]_.\nUpSet plots are used to visualise set overlaps; like Venn diagrams but\nmore readable. Documentation is at https://upsetplot.readthedocs.io.\n\nThis ``upsetplot`` library tries to provide a simple interface backed by an\nextensible, object-oriented design.\n\nThe basic input format is a `pandas.Series` containing counts corresponding to\nsubset sizes, where each subset is an intersection of named categories. The\nindex of the Series indicates which rows pertain to which categories, by having\nmultiple boolean indices, like ``example`` in the following::\n\n >>> from upsetplot import generate_counts\n >>> example = generate_counts()\n >>> example # doctest: +NORMALIZE_WHITESPACE\n cat0 cat1 cat2\n False False False 56\n True 283\n True False 1279\n True 5882\n True False False 24\n True 90\n True False 429\n True 1957\n Name: value, dtype: int64\n\nThen::\n\n >>> from upsetplot import plot\n >>> plot(example) # doctest: +SKIP\n >>> from matplotlib import pyplot\n >>> pyplot.show() # doctest: +SKIP\n\nmakes:\n\n.. image:: http://upsetplot.readthedocs.io/en/latest/_images/sphx_glr_plot_generated_001.png\n :target: ../auto_examples/plot_generated.html\n\nThis plot shows the cardinality of every category combination seen in our data.\nThe leftmost column counts items absent from any category. The next three\ncolumns count items only in ``cat1``, ``cat2`` and ``cat3`` respectively, with\nfollowing columns showing cardinalities for items in each combination of\nexactly two named sets. The rightmost column counts items in all three sets.\n\nRotation\n........\n\nWe call the above plot style \"horizontal\" because the category intersections\nare presented from left to right. `Vertical plots\n`__\nare also supported!\n\n.. image:: http://upsetplot.readthedocs.io/en/latest/_images/sphx_glr_plot_vertical_001.png\n :target: http://upsetplot.readthedocs.io/en/latest/auto_examples/plot_vertical.html\n\nDistributions\n.............\n\nProviding a DataFrame rather than a Series as input allows us to expressively\n`plot the distribution of variables\n`__\nin each subset.\n\n.. image:: http://upsetplot.readthedocs.io/en/latest/_images/sphx_glr_plot_boston_001.png\n :target: http://upsetplot.readthedocs.io/en/latest/auto_examples/plot_boston.html\n\nLoading datasets\n................\n\nWhile the dataset above is randomly generated, you can prepare your own dataset\nfor input to upsetplot. A helpful tool is `from_memberships`, which allows\nus to reconstruct the example above by indicating each data point's category\nmembership::\n\n >>> from upsetplot import from_memberships\n >>> example = from_memberships(\n ... [[],\n ... ['cat2'],\n ... ['cat1'],\n ... ['cat1', 'cat2'],\n ... ['cat0'],\n ... ['cat0', 'cat2'],\n ... ['cat0', 'cat1'],\n ... ['cat0', 'cat1', 'cat2'],\n ... ],\n ... data=[56, 283, 1279, 5882, 24, 90, 429, 1957]\n ... )\n >>> example # doctest: +NORMALIZE_WHITESPACE\n cat0 cat1 cat2\n False False False 56\n True 283\n True False 1279\n True 5882\n True False False 24\n True 90\n True False 429\n True 1957\n dtype: int64\n\nSee also `from_contents`, another way to describe categorised data.\n\nInstallation\n------------\n\nTo install the library, you can use `pip`::\n\n $ pip install upsetplot\n\nInstallation requires:\n\n* pandas\n* matplotlib >= 2.0\n* seaborn to use `UpSet.add_catplot`\n\nIt should then be possible to::\n\n >>> import upsetplot\n\nin Python.\n\nWhy an alternative to py-upset?\n-------------------------------\n\nProbably for petty reasons. It appeared `py-upset\n`_ was not being maintained. Its\ninput format was undocumented, inefficient and, IMO, inappropriate. It did not\nfacilitate showing plots of each subset's distribution as in Lex et al's work\nintroducing UpSet plots. Nor did it include the horizontal bar plots\nillustrated there. It did not support Python 2. I decided it would be easier to\nconstruct a cleaner version than to fix it.\n\nReferences\n----------\n\n.. [Lex2014] Alexander Lex, Nils Gehlenborg, Hendrik Strobelt, Romain Vuillemot, Hanspeter Pfister,\n *UpSet: Visualization of Intersecting Sets*,\n IEEE Transactions on Visualization and Computer Graphics (InfoVis '14), vol. 20, no. 12, pp. 1983\u20131992, 2014.\n doi: `doi.org/10.1109/TVCG.2014.2346248 `_\n\n\n.. |py-versions| image:: https://img.shields.io/pypi/pyversions/upsetplot.svg\n :alt: Python versions supported\n\n.. |version| image:: https://badge.fury.io/py/UpSetPlot.svg\n :alt: Latest version on PyPi\n :target: https://badge.fury.io/py/UpSetPlot\n\n.. |build| image:: https://travis-ci.org/jnothman/UpSetPlot.svg?branch=master\n :alt: Travis CI build status\n :scale: 100%\n :target: https://travis-ci.org/jnothman/UpSetPlot\n\n.. |issues| image:: https://img.shields.io/github/issues/jnothman/UpSetPlot.svg\n :alt: Issue tracker\n :target: https://github.com/jnothman/UpSetPlot\n\n.. |coverage| image:: https://coveralls.io/repos/github/jnothman/UpSetPlot/badge.svg\n :alt: Test coverage\n :target: https://coveralls.io/github/jnothman/UpSetPlot\n\n.. |docs| image:: https://readthedocs.org/projects/upsetplot/badge/?version=latest\n :alt: Documentation Status\n :scale: 100%\n :target: https://upsetplot.readthedocs.io/en/latest/?badge=latest\n\n.. |licence| image:: https://img.shields.io/badge/Licence-BSD-blue.svg\n :target: https://opensource.org/licenses/BSD-3-Clause", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://upsetplot.readthedocs.io", "keywords": "", "license": "BSD 3-Clause License", "maintainer": "", "maintainer_email": "", "name": "UpSetPlot", "package_url": "https://pypi.org/project/UpSetPlot/", "platform": "", "project_url": "https://pypi.org/project/UpSetPlot/", "project_urls": { "Homepage": "https://upsetplot.readthedocs.io" }, "release_url": "https://pypi.org/project/UpSetPlot/0.3.0.post3/", "requires_dist": null, "requires_python": "", "summary": "Draw Lex et al.'s UpSet plots with Pandas and Matplotlib", "version": "0.3.0.post3" }, "last_serial": 5485141, "releases": { "0.1": [ { "comment_text": "", "digests": { "md5": "fa3e098cb1b0386029085eab22c00e9d", "sha256": "7e28d24dd8fc71cb7de6630314e850bb325ac5bbe745b08944ffcfacd9e2607a" }, "downloads": -1, "filename": "UpSetPlot-0.1.tar.gz", "has_sig": false, "md5_digest": "fa3e098cb1b0386029085eab22c00e9d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6971, "upload_time": "2018-02-23T06:35:20", "url": "https://files.pythonhosted.org/packages/3f/53/53a7214dc16ff24c434ee211b7bff991698cb9ab4519f5eaf8b9f47bc784/UpSetPlot-0.1.tar.gz" } ], "0.1a0": [ { "comment_text": "", "digests": { "md5": "5c96674a89ce63dfe08c5923a54cc251", "sha256": "68097f04a964984faeba53324b22628c03b3ac6656ad151462f48465c7b11c44" }, "downloads": -1, "filename": "upsetplot-0.1a0.tar.gz", "has_sig": false, "md5_digest": "5c96674a89ce63dfe08c5923a54cc251", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 2904, "upload_time": "2018-02-21T13:17:02", "url": "https://files.pythonhosted.org/packages/49/44/3e6c444e39f36d24a81ffdc09349cae6190880c24a76c3ec25733698d7a7/upsetplot-0.1a0.tar.gz" } ], "0.1a1": [ { "comment_text": "", "digests": { "md5": "a9c281f06a5396168856923110f9f9d3", "sha256": "53596af6efbe485f364e215418277ccc132e644b82abae17593692a7ff2d10d6" }, "downloads": -1, "filename": "UpSetPlot-0.1a1.tar.gz", "has_sig": false, "md5_digest": "a9c281f06a5396168856923110f9f9d3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5991, "upload_time": "2018-02-22T02:29:25", "url": "https://files.pythonhosted.org/packages/95/2e/4c0df6bd79f39552003bacfc2e7f1ee6c4131b395cbfaac74baa0387e862/UpSetPlot-0.1a1.tar.gz" } ], "0.1a2": [ { "comment_text": "", "digests": { "md5": "771da797590c8c03e866e6b33bb39b11", "sha256": "274a1f85809a36fa8436f4a9d7f0f0bc89dbdb2f58235cc6b43d5bad0418e8ce" }, "downloads": -1, "filename": "UpSetPlot-0.1a2.tar.gz", "has_sig": false, "md5_digest": "771da797590c8c03e866e6b33bb39b11", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6855, "upload_time": "2018-02-22T20:08:23", "url": "https://files.pythonhosted.org/packages/f1/d9/3e308c805d41771b3bc5834a52d3d315eeabb621233ed60365b725e6294e/UpSetPlot-0.1a2.tar.gz" } ], "0.1a3": [ { "comment_text": "", "digests": { "md5": "3bfead75fb4ddb49164dc2e4306d61c7", "sha256": "b8cc5b78d4f9b7a130825494ece101a43995f5a375b5eb1ea46e3b81861c190c" }, "downloads": -1, "filename": "UpSetPlot-0.1a3.tar.gz", "has_sig": false, "md5_digest": "3bfead75fb4ddb49164dc2e4306d61c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6978, "upload_time": "2018-02-23T02:28:41", "url": "https://files.pythonhosted.org/packages/93/ce/d3b782981e08d1668b0c19a9df5b3106e8f3a5389110319bab885bdf5731/UpSetPlot-0.1a3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "5c4d02859ce8bc42fb02589e39996fd4", "sha256": "b24ef42f652e138db0dbb3754abd92f812bb605c98c300ba47582f5f6caf957f" }, "downloads": -1, "filename": "UpSetPlot-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5c4d02859ce8bc42fb02589e39996fd4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12617, "upload_time": "2019-03-07T11:53:57", "url": "https://files.pythonhosted.org/packages/3c/8b/d662b91f3b0b08c351601dcd308e0f418029c196b247010f9e395f86be0f/UpSetPlot-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "e7768880ff66c443cd0e7633c4fbfeb6", "sha256": "c0c78bb1c4f5f7d0c9be5fd95408e3b8ac250a8cf1161ce250e2c4e4e21077a2" }, "downloads": -1, "filename": "UpSetPlot-0.2.1.tar.gz", "has_sig": false, "md5_digest": "e7768880ff66c443cd0e7633c4fbfeb6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12648, "upload_time": "2019-03-13T23:45:06", "url": "https://files.pythonhosted.org/packages/91/ca/1ffef6787236ea6e3ea6764370d73d0fbbb2abe71f5aee2d6da88069c193/UpSetPlot-0.2.1.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "e5cd17772cb9c353978bd68ae2ffc7b2", "sha256": "0ad40e6c5bc614bb38dff10d1c4a12ab3e20ea2f978ada8d67ba5ad3bbf195f2" }, "downloads": -1, "filename": "UpSetPlot-0.3.0.tar.gz", "has_sig": false, "md5_digest": "e5cd17772cb9c353978bd68ae2ffc7b2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15122, "upload_time": "2019-06-06T14:53:21", "url": "https://files.pythonhosted.org/packages/83/dc/f3e1e40d2446ffdfd8251bbd78bf616b0b292e3fc4266bb708e5dc762dae/UpSetPlot-0.3.0.tar.gz" } ], "0.3.0.post1": [ { "comment_text": "", "digests": { "md5": "d705da006adf95bb71de0b03e6fa2360", "sha256": "d0bdb5397e7f15900cd9ea143796b03adc3843b6c7a291478643c9e7c940f6f1" }, "downloads": -1, "filename": "UpSetPlot-0.3.0.post1.tar.gz", "has_sig": false, "md5_digest": "d705da006adf95bb71de0b03e6fa2360", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12760, "upload_time": "2019-07-04T06:14:12", "url": "https://files.pythonhosted.org/packages/8e/5c/98dbfb802d892d22970f77943bc7dbbd2855dfe92e0e33a1ac6be4d6769a/UpSetPlot-0.3.0.post1.tar.gz" } ], "0.3.0.post2": [ { "comment_text": "", "digests": { "md5": "4996a3b369e4dfd69876823170966173", "sha256": "7ce4c9c35512bf2b230d57a8caceddcd30f1ab05f1b303e9cf8d3c7a4b5cffb4" }, "downloads": -1, "filename": "UpSetPlot-0.3.0.post2.tar.gz", "has_sig": false, "md5_digest": "4996a3b369e4dfd69876823170966173", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12834, "upload_time": "2019-07-04T06:33:22", "url": "https://files.pythonhosted.org/packages/26/41/94cdcb08a11373d663a645a7daf8a6cdb8b30818543cd679978a3d4437b4/UpSetPlot-0.3.0.post2.tar.gz" } ], "0.3.0.post3": [ { "comment_text": "", "digests": { "md5": "d489066375cf72651fde108f74577271", "sha256": "f433270bf1433f08383cf6fa882b47ec4fdd0bdf4462d0be9526b78c4bb4612f" }, "downloads": -1, "filename": "UpSetPlot-0.3.0.post3.tar.gz", "has_sig": false, "md5_digest": "d489066375cf72651fde108f74577271", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12814, "upload_time": "2019-07-04T06:37:30", "url": "https://files.pythonhosted.org/packages/cb/34/5799fa71e4eb08177462b24c0da9ee44e4b3f31de67cd72b63c61ed17590/UpSetPlot-0.3.0.post3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "d489066375cf72651fde108f74577271", "sha256": "f433270bf1433f08383cf6fa882b47ec4fdd0bdf4462d0be9526b78c4bb4612f" }, "downloads": -1, "filename": "UpSetPlot-0.3.0.post3.tar.gz", "has_sig": false, "md5_digest": "d489066375cf72651fde108f74577271", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12814, "upload_time": "2019-07-04T06:37:30", "url": "https://files.pythonhosted.org/packages/cb/34/5799fa71e4eb08177462b24c0da9ee44e4b3f31de67cd72b63c61ed17590/UpSetPlot-0.3.0.post3.tar.gz" } ] }