{ "info": { "author": "pierre-sassoulas", "author_email": "pierre.sassoulas@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: GNU Affero General Public License v3", "Operating System :: OS Independent", "Programming Language :: Python :: 3.6", "Programming Language :: Python :: 3.7" ], "description": "# pySankey\n\nUses matplotlib to create simple \nSankey diagrams flowing only from left to right.\n\n[![PyPI version](https://badge.fury.io/py/pySankeyBeta.svg)](https://badge.fury.io/py/pySankeyBeta)\n[![Build Status](https://travis-ci.org/Pierre-Sassoulas/pySankey.svg?branch=master)](https://travis-ci.org/Pierre-Sassoulas/pySankey)\n[![Coverage Status](https://coveralls.io/repos/github/Pierre-Sassoulas/pySankey/badge.svg?branch=master)](https://coveralls.io/github/Pierre-Sassoulas/pySankey?branch=master)\n[![Code style: black](https://img.shields.io/badge/code%20style-black-000000.svg)](https://github.com/ambv/black)\n\n## Requirements\n\nRequires python-tk (for python 2.7) or python3-tk (for python 3.x) you can\ninstall the other requirements with:\n\n``` bash\n pip install -r requirements.txt\n```\n\n## Example\n\nWith fruits.txt :\n\n
\n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
truepredicted
0blueberryorange
1limeorange
2blueberrylime
3appleorange
.........
996limeorange
997blueberryorange
998orangebanana
999applelime
\n

1000 rows \u00d7 2 columns

\n
\n\nYou can generate a sankey's diagram with this code:\n\n```python\nimport pandas as pd\nfrom pysankey import sankey\n\npd.options.display.max_rows = 8\ndf = pd.read_csv(\n 'pysankey/fruits.txt', sep=' ', names=['true', 'predicted']\n)\ncolorDict = {\n 'apple':'#f71b1b',\n 'blueberry':'#1b7ef7',\n 'banana':'#f3f71b',\n 'lime':'#12e23f',\n 'orange':'#f78c1b',\n 'kiwi':'#9BD937'\n}\nsankey(\n df['true'], df['predicted'], aspect=20, colorDict=colorDict,\n leftLabels=['banana','orange','blueberry','apple','lime'],\n rightLabels=['orange','banana','blueberry','apple','lime','kiwi'],\n fontsize=12, figureName=\"fruit\"\n)\n# Result is in \"fruit.png\"\n```\n\n![Fruity Alchemy](pysankey/fruit.png)\n\nYou could also use weight:\n\n```\n,customer,good,revenue\n0,John,fruit,5.5\n1,Mike,meat,11.0\n2,Betty,drinks,7.0\n3,Ben,fruit,4.0\n4,Betty,bread,2.0\n5,John,bread,2.5\n6,John,drinks,8.0\n7,Ben,bread,2.0\n8,Mike,bread,3.5\n9,John,meat,13.0\n```\n\n```python\nimport pandas as pd\nfrom pysankey import sankey\n\ndf = pd.read_csv(\n 'pysankey/customers-goods.csv', sep=',',\n names=['id', 'customer', 'good', 'revenue']\n)\nweight = df['revenue'].values[1:].astype(float)\nsankey(\n left=df['customer'].values[1:], right=df['good'].values[1:],\n rightWeight=weight, leftWeight=weight, aspect=20, fontsize=20,\n figureName=\"customer-good\"\n)\n# Result is in \"customer-good.png\"\n```\n\n![Customer goods](pysankey/customers-goods.png)\n\n## Package development\n\n### Lint\n\n\tpylint pysankey\n\n### Testing\n\n\tpython -m unittest\n\n### Coverage\n\n\tcoverage run -m unittest\n\tcoverage html\n\t# Open htmlcov/index.html in a navigator", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/pierre-sassoulas/pySankey", "keywords": "", "license": "GNU General Public License v3.0", "maintainer": "", "maintainer_email": "", "name": "pySankeyBeta", "package_url": "https://pypi.org/project/pySankeyBeta/", "platform": "", "project_url": "https://pypi.org/project/pySankeyBeta/", "project_urls": { "Homepage": "https://github.com/pierre-sassoulas/pySankey" }, "release_url": "https://pypi.org/project/pySankeyBeta/1.0.8/", "requires_dist": null, "requires_python": "", "summary": "Make simple, pretty Sankey Diagrams (Beta version)", "version": "1.0.8" }, "last_serial": 5488121, "releases": { "1.0.0": [ { "comment_text": "", "digests": { "md5": "2f050156919f871cb23875256a9c1919", "sha256": "a0fcf485eb1643f94522563d78ba404a40af32788231a5d8486dbb18fff57eea" }, "downloads": -1, "filename": "pySankeyBeta-1.0.0.tar.gz", "has_sig": false, "md5_digest": "2f050156919f871cb23875256a9c1919", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 6395, "upload_time": "2018-12-12T22:12:55", "url": "https://files.pythonhosted.org/packages/76/34/3c834f3c5063152e721a0cce496095fda7d06f7ddaa2dc056b7bbaca5fbd/pySankeyBeta-1.0.0.tar.gz" } ], "1.0.1": [ { "comment_text": "", "digests": { "md5": "b8309cdf2dbaf0139c9efccd09c1759e", "sha256": "a39f3fdddf7dfa461999879651f8b94d2cc9273bc72e42f6b426156ac2257af6" }, "downloads": -1, "filename": "pySankeyBeta-1.0.1.tar.gz", "has_sig": false, "md5_digest": "b8309cdf2dbaf0139c9efccd09c1759e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 329174, "upload_time": "2018-12-12T22:36:43", "url": "https://files.pythonhosted.org/packages/e9/12/4fcd90325d99914caf53a9bfd80db1892ca49925ebee9f5aaf1c431700b3/pySankeyBeta-1.0.1.tar.gz" } ], "1.0.2": [ { "comment_text": "", "digests": { "md5": "19a091a07c6b0eb5dbefc0438e8791eb", "sha256": "3053320954ad5893ffc33f14fb9519b0a50928773bc1bf3f580f1856e0ae1898" }, "downloads": -1, "filename": "pySankeyBeta-1.0.2.tar.gz", "has_sig": false, "md5_digest": "19a091a07c6b0eb5dbefc0438e8791eb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 329348, "upload_time": "2018-12-13T22:09:09", "url": "https://files.pythonhosted.org/packages/20/37/d515e7fefc3c3c93d7a320dc1e50a07ee77246a07dac023712db94f716f0/pySankeyBeta-1.0.2.tar.gz" } ], "1.0.3": [ { "comment_text": "", "digests": { "md5": "bc18e67d226817c7e13688dbce49ac6a", "sha256": "1201bb3305de81ed2f152a7bea9e2ba1f530ece61a15c17d79bcd20a366a610d" }, "downloads": -1, "filename": "pySankeyBeta-1.0.3.tar.gz", "has_sig": false, "md5_digest": "bc18e67d226817c7e13688dbce49ac6a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 335991, "upload_time": "2018-12-13T22:35:01", "url": "https://files.pythonhosted.org/packages/d6/b6/1cd515052f9c78a8258ae67c79ba1a856ba6f746ef7e022023fa78f0df86/pySankeyBeta-1.0.3.tar.gz" } ], "1.0.4": [ { "comment_text": "", "digests": { "md5": "cf4c729c7bcb076992471a0520d99bd5", "sha256": "0eee2d4c7b58ebed622c171bc141b9d112644a1104fa703b7715bb417e863d3a" }, "downloads": -1, "filename": "pySankeyBeta-1.0.4.tar.gz", "has_sig": false, "md5_digest": "cf4c729c7bcb076992471a0520d99bd5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 336493, "upload_time": "2019-01-04T07:50:22", "url": "https://files.pythonhosted.org/packages/d3/5d/dc33ef5c130f4b45ac362d85ec2a5bb3d2aaea32fc7e159233b96a8c6724/pySankeyBeta-1.0.4.tar.gz" } ], "1.0.5": [ { "comment_text": "", "digests": { "md5": "b618d7931099031c4496f89bffcdfde7", "sha256": "06acd4620a0c4797a3b9ff928bf9ba585a0247be076998ec407ddd23805494cb" }, "downloads": -1, "filename": "pySankeyBeta-1.0.5.tar.gz", "has_sig": false, "md5_digest": "b618d7931099031c4496f89bffcdfde7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 335875, "upload_time": "2019-04-22T16:48:02", "url": "https://files.pythonhosted.org/packages/6f/79/ba21f5ad2e07371e7a22c78e8847722587b6f250fc92f09b214265080704/pySankeyBeta-1.0.5.tar.gz" } ], "1.0.6": [ { "comment_text": "", "digests": { "md5": "1cfa664a239d4893f5eb937a15eee9a6", "sha256": "053b6928d51f99bc96a73a968aecce0d10ee4cd946ec7a7569bd07b056f059c1" }, "downloads": -1, "filename": "pySankeyBeta-1.0.6.tar.gz", "has_sig": false, "md5_digest": "1cfa664a239d4893f5eb937a15eee9a6", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 335888, "upload_time": "2019-06-30T18:34:34", "url": "https://files.pythonhosted.org/packages/25/d6/8a162bd65ccf211eb59d682d8d44fc275f753e349175b7ede06317ab894e/pySankeyBeta-1.0.6.tar.gz" } ], "1.0.7": [ { "comment_text": "", "digests": { "md5": "609248c6372cc9901cd6d7c4ef2ada95", "sha256": "d770272b2ed9c8a3bcd5f4688e308f0dcb96c8691db983e081b3a8d209c96e64" }, "downloads": -1, "filename": "pySankeyBeta-1.0.7.tar.gz", "has_sig": false, "md5_digest": "609248c6372cc9901cd6d7c4ef2ada95", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 337179, "upload_time": "2019-06-30T19:04:31", "url": "https://files.pythonhosted.org/packages/03/f2/2cce4b2eb3d5823cef18a83b79a2890193ab60998f0d99408deb0d5f6a38/pySankeyBeta-1.0.7.tar.gz" } ], "1.0.8": [ { "comment_text": "", "digests": { "md5": "a9a35e4680bea71ccbf23e53e4ffae09", "sha256": "4cfef7733aab3732ccb80a55fd7390ea49ef16075ba56c2a10d2c4a775c19ba5" }, "downloads": -1, "filename": "pySankeyBeta-1.0.8.tar.gz", "has_sig": false, "md5_digest": "a9a35e4680bea71ccbf23e53e4ffae09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 536333, "upload_time": "2019-07-04T19:47:20", "url": "https://files.pythonhosted.org/packages/d1/41/33916de416221f6c55ccc03c0030a55e4ff7ca54c1f5deeee7d15d342d76/pySankeyBeta-1.0.8.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "a9a35e4680bea71ccbf23e53e4ffae09", "sha256": "4cfef7733aab3732ccb80a55fd7390ea49ef16075ba56c2a10d2c4a775c19ba5" }, "downloads": -1, "filename": "pySankeyBeta-1.0.8.tar.gz", "has_sig": false, "md5_digest": "a9a35e4680bea71ccbf23e53e4ffae09", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 536333, "upload_time": "2019-07-04T19:47:20", "url": "https://files.pythonhosted.org/packages/d1/41/33916de416221f6c55ccc03c0030a55e4ff7ca54c1f5deeee7d15d342d76/pySankeyBeta-1.0.8.tar.gz" } ] }