A simple plain-text, no-dependencies, pip-installable, open-source charting utility in Python.
Project description
PlainChart
A simple plain-text, no-dependencies, pip
-installable, open-source charting utility in Python.
Usage:
>>> import plainchart
>>> chart = plainchart.PlainChart([3, 1, 4, 1, 5, 9, 2, 6, 5, 3, 5, 9]) # ๐ฅง
>>> print(chart.render())
โ โ
โ โ
โ โ
โ โ โ
โโ โโ โโ
โโ โโ โโ
โ โโ โโ โโ
โ โ โโ โโโโโ
โ โ โโโโโโโโ
โโโโโโโโโโโโ
Installation
To install PlainChart, you can use pipenv or pip:
$ pipenv install plainchart
Features
With PlainChart, you can:
- render an array of values in a plain text chart
- limit the height of the chart and have the values rendered accordingly
- render a different style of chart, e.g.,
plainchart.PlainChart.bar
orplainchart.PlainChart.scatter
- implement your own style of chart, e.g.,
mean_html
(see example below)
Examples
>>> import plainchart
>>> import random
>>>
>>> values = [random.randint(0, 10) for _ in range(100)]
>>> chart = plainchart.PlainChart(values)
>>>
>>> print(chart.render())
โ โ โ โ โ โ โ โ
โ โ โ โโ โ โ โ โ โ โ โ โ
โ โ โโ โโ โ โ โโ โ โ โโ โ โ โ โ โ โ โ โ โ
โ โ โโ โโ โโโ โ โโ โโโ โ โ โ โโ โ โโ โ โ โ โ โ โ โ โ โ
โ โ โโโ โโ โโโ โโ โโ โโโโ โ โ โ โ โ โโ โ โโ โ โ โ โ โโโ โ โ โ โ
โ โ โโโ โโ โโโ โโ โโ โโโโ โโ โ โ โ โ โ โโ โ โโ โ โโ โ โโโโโโโ โโโ โ โ
โ โ โโโ โโ โโโ โโ โโโโโโโโโ โโโ โ โ โ โ โ โ โ โ โโ โ โโ โ โโ โ โโโโโโโ โโโ โโ โโ
โ โ โโโโ โโโ โโโโ โโโโโโโโโโโโ โโโ โ โ โ โ โโโ โ โ โโ โโโ โ โโโ โ โโ โโโโโโโโโ โโโ โโ โ โโ
โโโโ โโโโ โโโ โโโโ โโโโโโโโโโโโ โโโ โโ โ โ โโโโโโโ โโโโโโโโ โโ โโโโโ โโโโ โโโโโโโโโ โโโ โโโ โโโโ
โโโโโ โโโโ โโโโโโโโ โโโโโโโโโโโโโโโโ โโ โ โโ โโโโโโโโโโโโโโโโโโโโโโโโโ โโโโโโโโโโโโโโ โโโโโโโโโโโโโ
>>> import plainchart
>>> import math
>>> import numpy as np
>>>
>>> values = [1.3 + math.sin(x) for x in np.linspace(0, 4 * math.pi, num=100)]
>>> chart = plainchart.PlainChart(values, style=plainchart.PlainChart.scatter)
>>>
>>> print(chart.render())
รรรรรรรร รรรรรรร
รรร รรร รรร รรร
รร รร รรร รร
รร รร ร รร
รร รร รร รร ร
ร รร รร รร
รร รร รร รร
รรร รร รร รร
รรร รรรร รรรร รรรร
รรรรร รรรร
You 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.
import plainchart
import random
import statistics
def mean_html(chart, value, y):
mean = statistics.mean(chart.values)
mean_y = chart.y(mean)
value_y = chart.y(value)
if value_y <= mean_y:
if y <= value_y:
return '<span style="color:green">โ</span>'
return '<span style="color:white">โ</span>'
else:
if y <= mean_y:
return '<span style="color:green">โ</span>'
elif y <= value_y:
return '<span style="color:red">โ</span>'
return '<span style="color:white">โ</span>'
values = [random.randint(0, 10) for _ in range(100)]
chart = plainchart.PlainChart(values, style=mean_html)
print(chart.render(new_line='<br>'))
$ python mean_html.py > mean.html
Contribute
Please 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.
Support
PlainChart is free and under the MIT License. To support its development, you can make a donation to cash.me/$gduverger.
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
Built Distribution
Hashes for plainchart-0.2.1-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | ef99c009dfef2cd7e5dd28fef01e284f337bb22ca4b499dfcaa8bdd819164c19 |
|
MD5 | 314ab8b04e95a3a566c64d930d78cb17 |
|
BLAKE2b-256 | 040550ff85624076396dbc1bc3569d495d89fe68c2506f6c7e3240edf9876334 |