{ "info": { "author": "Max Humber", "author_email": "max.humber@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "Intended Audience :: Education", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Topic :: Artistic Software", "Topic :: Multimedia :: Graphics", "Topic :: Scientific/Engineering :: Visualization" ], "description": "

\n \"chart\"\n

\n

\n \"MIT\"\n \"Travis\"\n \"PyPI\"\n \"Downloads\"\n

\n\nA zero-dependency python package that prints basic charts to a Jupyter output\n\nCharts supported:\n\n- Bar graphs\n- Scatter plots\n- Histograms\n- \ud83c\udf51\ud83d\udcca\ud83d\udc4f\n\n#### Examples\n\nBar graphs can be drawn quickly with the `bar` function:\n\n```python\nfrom chart import bar\n\nx = [500, 200, 900, 400]\ny = ['marc', 'mummify', 'chart', 'sausagelink']\n\nbar(x, y)\n```\n\n```\n marc: \u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587 \n mummify: \u2587\u2587\u2587\u2587\u2587\u2587\u2587 \n chart: \u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\nsausagelink: \u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587\u2587 \n```\n\nAnd the `bar` function can accept columns from a `pd.DataFrame`:\n\n```python\nfrom chart import bar\nimport pandas as pd\n\ndf = pd.DataFrame({\n 'artist': ['Tame Impala', 'Childish Gambino', 'The Knocks'],\n 'listens': [8_456_831, 18_185_245, 2_556_448]\n})\nbar(df.listens, df.artist, width=20, label_width=11, mark='\ud83d\udd0a')\n```\n\n```\nTame Impala: \ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a \nChildish Ga: \ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\ud83d\udd0a\n The Knocks: \ud83d\udd0a\ud83d\udd0a\ud83d\udd0a \n```\n\nHistograms are just as easy:\n\n```python\nfrom chart import histogram\n\nx = [1, 2, 4, 3, 3, 1, 7, 9, 9, 1, 3, 2, 1, 2]\n\nhistogram(x)\n```\n\n```\n\u2587 \n\u2587 \n\u2587 \n\u2587 \n\u2587 \u2587 \n\u2587 \u2587 \n\u2587 \u2587 \n\u2587 \u2587 \u2587\n\u2587 \u2587 \u2587\n\u2587 \u2587 \u2587 \u2587\n```\n\nAnd they can accept objects created by `scipy`:\n\n```python\nfrom chart import histogram\nimport scipy.stats as stats\nimport numpy as np\n\nnp.random.seed(14)\nn = stats.norm(loc=0, scale=10)\n\nhistogram(n.rvs(100), bins=14, height=7, mark='\ud83c\udf51')\n```\n\n```\n \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \n \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51 \ud83c\udf51\n```\n\nScatter plots can be drawn with a simple `scatter` call:\n\n```python\nfrom chart import scatter\n\nx = range(0, 20)\ny = range(0, 20)\n\nscatter(x, y)\n```\n\n```python\n \u2022\n \u2022 \u2022 \n \u2022 \n \u2022 \u2022 \n \u2022 \u2022 \n \u2022 \n \u2022 \u2022 \n \u2022 \n \u2022 \u2022 \n \u2022 \u2022 \n \u2022 \n \u2022 \u2022 \n\u2022 \n```\n\nAnd at this point you gotta know it works with any `np.array`:\n\n```python\nfrom chart import scatter\nimport numpy as np\n\nnp.random.seed(1)\nN = 100\nx = np.random.normal(100, 50, size=N)\ny = x * -2 + 25 + np.random.normal(0, 25, size=N)\n\nscatter(x, y, width=20, height=9, mark='^')\n```\n\n```\n^^ \n ^ \n ^^^ \n ^^^^^^^ \n ^^^^^^ \n ^^^^^^^ \n ^^^^ \n ^^^^^ ^\n ^^ ^\n```\n\nIn fact, all `chart` functions work with pandas, numpy, scipy and regular python objects.\n\n#### Preprocessors\n\nIn order to create the simple outputs generated by `bar`, `histogram`, and `scatter` I had to create a couple of preprocessors, namely: `NumberBinarizer` and `RangeScaler`.\n\nI tried to adhere to the scikit-learn API in their construction. Although you won't need them to use `chart` here they are for your tinkering:\n\n```python\nfrom chart.preprocessing import NumberBinarizer\n\nnb = NumberBinarizer(bins=4)\nx = range(10)\nnb.fit(x)\nnb.transform(x)\n```\n\n```\n[0, 0, 0, 1, 1, 2, 2, 3, 3, 3]\n```\n\n```python\nfrom chart.preprocessing import RangeScaler\n\nrs = RangeScaler(out_range=(0, 10), round=False)\nx = range(50, 59)\nrs.fit_transform(x)\n```\n\n```\n[0.0, 1.25, 2.5, 3.75, 5.0, 6.25, 7.5, 8.75, 10.0]\n```\n\n#### Installation\n\n```python\npip install chart\n```\n\n#### Contribute\n\nFor feature requests or bug reports, please use [Github Issues](https://github.com/maxhumber/chart/issues)\n\n#### Inspiration\n\nI wanted a super-light-weight library that would allow me to quickly grok data. Matplotlib had too many dependencies, and Altair seemed overkill. Though I really like the idea of [termgraph](https://github.com/mkaz/termgraph), it didn't really fit well or integrate with my Jupyter workflow. Here's to `chart` \ud83e\udd42 (still can't believe I got it on [PyPI](https://pypi.org/project/chart/))", "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/maxhumber/chart", "keywords": "chart,plot,graph,print,visualize,visualization,vis,bar,histogram,scatter", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "chart", "package_url": "https://pypi.org/project/chart/", "platform": "", "project_url": "https://pypi.org/project/chart/", "project_urls": { "Homepage": "https://github.com/maxhumber/chart" }, "release_url": "https://pypi.org/project/chart/0.2.3/", "requires_dist": null, "requires_python": ">=3.6", "summary": "chart", "version": "0.2.3" }, "last_serial": 5777690, "releases": { "0.0.0": [ { "comment_text": "", "digests": { "md5": "aeca39be2e0ec5ac70a92941f6821f2a", "sha256": "26e596ba4150a7a7806577437e7dc6878474bdc92ddf8358f3b13e9881c73f66" }, "downloads": -1, "filename": "chart-0.0.0-py3-none-any.whl", "has_sig": false, "md5_digest": "aeca39be2e0ec5ac70a92941f6821f2a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3185, "upload_time": "2019-08-08T17:36:33", "url": "https://files.pythonhosted.org/packages/09/32/e22146dbaa03f10925c66a2ef7f682028f0039991d93fe18734eeda62673/chart-0.0.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ad9a7f578fc9a3f43e54a01e6095f19c", "sha256": "1c765360c1e74acac8bd81d34e186591b67de036df15ce06faa0211cdabf11c4" }, "downloads": -1, "filename": "chart-0.0.0.tar.gz", "has_sig": false, "md5_digest": "ad9a7f578fc9a3f43e54a01e6095f19c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3403, "upload_time": "2019-08-08T17:36:36", "url": "https://files.pythonhosted.org/packages/08/f3/09f33aa0d512d9de5a4feca00ca8c1b9623b5e9804278fa47e677626c3e2/chart-0.0.0.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "4ea642e0e8d1856020aed6b4694cbfad", "sha256": "fd0ff019c6ee12f01cac97a13b76dd4bc40ff888987f05a4eff02e3b327da76d" }, "downloads": -1, "filename": "chart-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "4ea642e0e8d1856020aed6b4694cbfad", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3.6", "size": 3962, "upload_time": "2019-08-09T14:51:31", "url": "https://files.pythonhosted.org/packages/69/82/be0d8831fa82f1f4982395b725885ec50a47472303c672a70f1b829f44b6/chart-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7abe3bd40ada79ffa7ab60c6bbcd60e6", "sha256": "13bfcf45b5c71ac204c7cc655fba5f1791313de1d81833b071383685fc7b8fc3" }, "downloads": -1, "filename": "chart-0.1.0.tar.gz", "has_sig": false, "md5_digest": "7abe3bd40ada79ffa7ab60c6bbcd60e6", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 3775, "upload_time": "2019-08-09T14:51:32", "url": "https://files.pythonhosted.org/packages/4b/9e/e0e7ba1878784983593ee46839234bccb7d39b4d9af0db7fe3322ca963fe/chart-0.1.0.tar.gz" } ], "0.1.1": [ { "comment_text": "", "digests": { "md5": "393f74dee65843eb3f6023c95e0f6f1b", "sha256": "7d3ccc35b35fac664996ba90cbb20f81d054507a8beb6dffe6fa90c524d509b5" }, "downloads": -1, "filename": "chart-0.1.1.tar.gz", "has_sig": false, "md5_digest": "393f74dee65843eb3f6023c95e0f6f1b", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2148, "upload_time": "2019-08-09T15:28:07", "url": "https://files.pythonhosted.org/packages/dd/21/4bc04342b2f2f3ffada87bce8d37be9f39545c22fc9ec1cba2f5093d366e/chart-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "9ba2a87d4fe36b69b419f2edfb22b59a", "sha256": "adeb94ca197576f108097b1b3d575d8bb92a4a1051bb062ce485e7eaa04f657d" }, "downloads": -1, "filename": "chart-0.1.2.tar.gz", "has_sig": false, "md5_digest": "9ba2a87d4fe36b69b419f2edfb22b59a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 2151, "upload_time": "2019-08-09T15:38:11", "url": "https://files.pythonhosted.org/packages/12/b5/c32e750702639142a36e67f9b906954d27e74eb24bfe6d303d41f855179e/chart-0.1.2.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "a993e6fb4706b7a432ae2ca52442efbb", "sha256": "b8adfd1736914ce8e8a56b2e90396bdcef86128fa32edbaa59abf3c0d52da81b" }, "downloads": -1, "filename": "chart-0.2.0.tar.gz", "has_sig": false, "md5_digest": "a993e6fb4706b7a432ae2ca52442efbb", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5503, "upload_time": "2019-08-12T16:12:00", "url": "https://files.pythonhosted.org/packages/44/8f/71bec7d31d04bd92c9346e9838fb063672fc66dcf0f8b363562091f41446/chart-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "6f150e5b813adfbe3065878cd5bcda16", "sha256": "747368ee6af1f39647510fa7bf7bf2049c3af17639ed79234fb47c6ce31343dc" }, "downloads": -1, "filename": "chart-0.2.1.tar.gz", "has_sig": false, "md5_digest": "6f150e5b813adfbe3065878cd5bcda16", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5499, "upload_time": "2019-08-12T16:16:41", "url": "https://files.pythonhosted.org/packages/eb/d5/55403fa9d94b766a975cf926908b4e31f59850047f79150bad3f32ad4b0d/chart-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "6ab854d0d89553db21123594d482aa7a", "sha256": "bb9350047eedc10ab93bc7ae5b46aab99f4155feb39117f1eae383337022ff7e" }, "downloads": -1, "filename": "chart-0.2.2.tar.gz", "has_sig": false, "md5_digest": "6ab854d0d89553db21123594d482aa7a", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5505, "upload_time": "2019-08-12T20:42:39", "url": "https://files.pythonhosted.org/packages/99/a6/fbfceb9d83cfea99392fc9d081cc02526f75f2f45a3f719399296d4b8165/chart-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "8b0cfff12f565bf59bd92de4e7efd49d", "sha256": "66a9eac885d3479d00c0312663b2e18313997a1bb6cfb014e50026e9a83c9ac5" }, "downloads": -1, "filename": "chart-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8b0cfff12f565bf59bd92de4e7efd49d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5519, "upload_time": "2019-09-03T20:00:19", "url": "https://files.pythonhosted.org/packages/b3/e0/b10edf6b4ed5d4bc26b8d9b63d769b85efac89f186a733c73147561f1dd3/chart-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "8b0cfff12f565bf59bd92de4e7efd49d", "sha256": "66a9eac885d3479d00c0312663b2e18313997a1bb6cfb014e50026e9a83c9ac5" }, "downloads": -1, "filename": "chart-0.2.3.tar.gz", "has_sig": false, "md5_digest": "8b0cfff12f565bf59bd92de4e7efd49d", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3.6", "size": 5519, "upload_time": "2019-09-03T20:00:19", "url": "https://files.pythonhosted.org/packages/b3/e0/b10edf6b4ed5d4bc26b8d9b63d769b85efac89f186a733c73147561f1dd3/chart-0.2.3.tar.gz" } ] }