{ "info": { "author": "Georges Duverger", "author_email": "georges.duverger@gmail.com", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Operating System :: OS Independent", "Programming Language :: Python :: 3" ], "description": "PlainChart\n==========\n\nA simple plain-text, no-dependencies, `pip`-installable, open-source charting utility in Python.\n\nUsage:\n```python\n>>> import plainchart\n>>> chart = plainchart.PlainChart([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9]) # \ud83e\udd67\n>>> print(chart.render())\n\n \u258c \u258c\n \u258c \u258c\n \u258c \u258c\n \u258c \u258c \u258c\n \u258c\u258c \u258c\u258c \u258c\u258c\n \u258c\u258c \u258c\u258c \u258c\u258c\n \u258c \u258c\u258c \u258c\u258c \u258c\u258c\n\u258c \u258c \u258c\u258c \u258c\u258c\u258c\u258c\u258c\n\u258c \u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\n\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\n```\n\nInstallation\n------------\n\nTo install PlainChart, you can use [pipenv](http://pipenv.org/) or pip:\n```bash\n$ pipenv install plainchart\n```\n\nFeatures\n--------\n\nWith PlainChart, you can:\n- render an array of values in a plain text chart\n- limit the height of the chart and have the values rendered accordingly\n- render a different style of chart, e.g., `plainchart.PlainChart.bar` or `plainchart.PlainChart.scatter`\n- implement your own style of chart, e.g., `mean_html` (see example below)\n\nExamples\n--------\n\n```python\n>>> import plainchart\n>>> import random\n>>>\n>>> values = [random.randint(0, 10) for _ in range(100)]\n>>> chart = plainchart.PlainChart(values)\n>>>\n>>> print(chart.render())\n\n \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c\n \u258c \u258c \u258c \u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c\n \u258c \u258c \u258c\u258c \u258c\u258c \u258c \u258c \u258c\u258c \u258c \u258c \u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c\n \u258c \u258c \u258c\u258c \u258c\u258c \u258c\u258c\u258c \u258c \u258c\u258c \u258c\u258c\u258c \u258c \u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c\n \u258c \u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c \u258c\u258c\u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c \u258c \u258c \u258c\u258c\u258c \u258c \u258c \u258c \u258c\n \u258c \u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c \u258c\n \u258c \u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c\u258c \u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c\u258c\n \u258c \u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c \u258c \u258c \u258c \u258c\u258c\u258c \u258c \u258c \u258c\u258c \u258c\u258c\u258c \u258c \u258c\u258c\u258c \u258c \u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c \u258c\u258c\n \u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c \u258c \u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c \u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c\u258c \u258c\u258c\u258c\u258c\n\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c \u258c \u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c \u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\u258c\n```\n\n```python\n>>> import plainchart\n>>> import math\n>>> import numpy as np\n>>>\n>>> values = [1.3 + math.sin(x) for x in np.linspace(0, 4 * math.pi, num=100)]\n>>> chart = plainchart.PlainChart(values, style=plainchart.PlainChart.scatter)\n>>>\n>>> print(chart.render())\n\n \u00d7\u00d7\u00d7\u00d7\u00d7\u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\u00d7\u00d7\u00d7\u00d7\n \u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\n \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7\u00d7 \u00d7\u00d7\n \u00d7\u00d7 \u00d7\u00d7 \u00d7 \u00d7\u00d7\n\u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7 \u00d7\n \u00d7 \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7\n \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7\n \u00d7\u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7 \u00d7\u00d7\n \u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\u00d7\n \u00d7\u00d7\u00d7\u00d7\u00d7 \u00d7\u00d7\u00d7\u00d7\n```\n\nYou can also implement your own style of chart. Below is an example of a HTML chart (`mean_html.py`) with different colors for values below and above the mean.\n\n```python\nimport plainchart\nimport random\nimport statistics\n\ndef mean_html(chart, value, y):\n\tmean = statistics.mean(chart.values)\n\tmean_y = chart.y(mean)\n\tvalue_y = chart.y(value)\n\n\tif value_y <= mean_y:\n\n\t\tif y <= value_y:\n\t\t\treturn '\u258c'\n\n\t\treturn '\u258c'\n\n\telse:\n\n\t\tif y <= mean_y:\n\t\t\treturn '\u258c'\n\n\t\telif y <= value_y:\n\t\t\treturn '\u258c'\n\n\t\treturn '\u258c'\n\nvalues = [random.randint(0, 10) for _ in range(100)]\nchart = plainchart.PlainChart(values, style=mean_html)\n\nprint(chart.render(new_line='
'))\n```\n\n```bash\n$ python mean_html.py > mean.html\n```\n\n![Mean HTML chart](https://github.com/gduverger/plainchart/blob/master/static/mean.png \"Mean HTML chart\")\n\nContribute\n----------\n\nPlease feel free to open an issue to propose a new feature or point out a bug. You can also fork the PlainChart repository and submit a pull request.\n\nSupport\n-------\n\nPlainChart is free and under the [MIT License](LICENSE). To support its development, you can make a donation to [cash.me/$gduverger](https://cash.me/$gduverger).\n\n\n", "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/gduverger/plainchart", "keywords": "", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "plainchart", "package_url": "https://pypi.org/project/plainchart/", "platform": "", "project_url": "https://pypi.org/project/plainchart/", "project_urls": { "Homepage": "https://github.com/gduverger/plainchart" }, "release_url": "https://pypi.org/project/plainchart/0.2.1/", "requires_dist": null, "requires_python": ">=3", "summary": "A simple plain-text, no-dependencies, pip-installable, open-source charting utility in Python.", "version": "0.2.1" }, "last_serial": 4229425, "releases": { "0.2.0": [ { "comment_text": "", "digests": { "md5": "c8615dc46930f8b0f4f738ae00aa9508", "sha256": "71ec2554271c4a3c2613bb2a94154131281041caec0cc1dda6179f72a77d70a4" }, "downloads": -1, "filename": "plainchart-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "c8615dc46930f8b0f4f738ae00aa9508", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3741, "upload_time": "2018-08-26T15:42:34", "url": "https://files.pythonhosted.org/packages/10/bb/c789bb3f41e8cd850e96bdbe93cb3a44eaf33a336eed739a59eed512f00d/plainchart-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6f7a125f606a8d06f5a25136fc8b821c", "sha256": "d8e78a2adbdfcddcb1128bd1647f2ec207189430ccaca001e8c2babda6dbe292" }, "downloads": -1, "filename": "plainchart-0.2.0.tar.gz", "has_sig": false, "md5_digest": "6f7a125f606a8d06f5a25136fc8b821c", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3301, "upload_time": "2018-08-26T15:42:36", "url": "https://files.pythonhosted.org/packages/2a/71/26d122cf47bee9030f701107e04a856c2ce24dde874196d4c7644f7099a1/plainchart-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "314ab8b04e95a3a566c64d930d78cb17", "sha256": "ef99c009dfef2cd7e5dd28fef01e284f337bb22ca4b499dfcaa8bdd819164c19" }, "downloads": -1, "filename": "plainchart-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "314ab8b04e95a3a566c64d930d78cb17", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3777, "upload_time": "2018-09-01T15:58:45", "url": "https://files.pythonhosted.org/packages/04/05/50ff85624076396dbc1bc3569d495d89fe68c2506f6c7e3240edf9876334/plainchart-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46990029a0c85af402c10970207b0df0", "sha256": "27b0aef82d2b80c76ecb3e00ad162daa9490945e6400d91ceab1c91643bfb81b" }, "downloads": -1, "filename": "plainchart-0.2.1.tar.gz", "has_sig": false, "md5_digest": "46990029a0c85af402c10970207b0df0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3348, "upload_time": "2018-09-01T15:58:46", "url": "https://files.pythonhosted.org/packages/9a/fd/97e94f5f4398d74597d23173e42819b03505a7dcc93c9d6cd95860e46a1d/plainchart-0.2.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "314ab8b04e95a3a566c64d930d78cb17", "sha256": "ef99c009dfef2cd7e5dd28fef01e284f337bb22ca4b499dfcaa8bdd819164c19" }, "downloads": -1, "filename": "plainchart-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "314ab8b04e95a3a566c64d930d78cb17", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": ">=3", "size": 3777, "upload_time": "2018-09-01T15:58:45", "url": "https://files.pythonhosted.org/packages/04/05/50ff85624076396dbc1bc3569d495d89fe68c2506f6c7e3240edf9876334/plainchart-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "46990029a0c85af402c10970207b0df0", "sha256": "27b0aef82d2b80c76ecb3e00ad162daa9490945e6400d91ceab1c91643bfb81b" }, "downloads": -1, "filename": "plainchart-0.2.1.tar.gz", "has_sig": false, "md5_digest": "46990029a0c85af402c10970207b0df0", "packagetype": "sdist", "python_version": "source", "requires_python": ">=3", "size": 3348, "upload_time": "2018-09-01T15:58:46", "url": "https://files.pythonhosted.org/packages/9a/fd/97e94f5f4398d74597d23173e42819b03505a7dcc93c9d6cd95860e46a1d/plainchart-0.2.1.tar.gz" } ] }