asciiplotlib is a Python 3 library for all your terminal plotting needs. It aims to work like matplotlib.
For line plots, asciiplotlib relies on gnuplot. With that installed, the code
import asciiplotlib as apl
x = numpy.linspace(0, 2 * numpy.pi, 10)
y = numpy.sin(x)
fig = apl.figure()
fig.plot(x, y, label="data", width=50, height=15)
fig.show()
produces
1 +---------------------------------------+
0.8 |-+ ** +A* + + + + +-|
0.6 |-+ A ** data ***A***-|
0.4 |-** +-|
0.2 |*+ A* +-|
0 |-+ ** +-|
| A |
-0.2 |-+ A* ** +-|
-0.4 |-+ ** * +-|
-0.6 |-+ *A +-|
-0.8 |-+ + + + +A*** ** + +-|
-1 +---------------------------------------+
0 1 2 3 4 5 6 7
asciiplotlib provides many options for table plotting. For the most basic example, the code
import asciiplotlib as apl
numpy.random.seed(0)
data = numpy.random.rand(5, 2)
fig = apl.figure()
fig.table(data)
fig.show()
produces
You can control border style, padding, alignment, and various other attributes. For example,
import asciiplotlib as apl
data = [
[["a", "bb", "ccc"]],
[[1, 2, 3], [613.23236243236, 613.23236243236, 613.23236243236]],
]
fig = apl.figure()
fig.table(data, border_style="thin", force_ascii=True, padding=(0, 1), alignment="lcr")
fig.show()
produces
+-----------------+-----------------+-----------------+
| a | bb | ccc |
+=================+=================+=================+
| 1 | 2 | 3 |
+-----------------+-----------------+-----------------+
| 613.23236243236 | 613.23236243236 | 613.23236243236 |
+-----------------+-----------------+-----------------+
See
test/test_table.py
for more examples.
import asciiplotlib as apl
numpy.random.seed(123)
sample = numpy.random.normal(size=1000)
counts, bin_edges = numpy.histogram(sample)
fig = apl.figure()
fig.hist(counts, bin_edges, orientation="horizontal", force_ascii=False)
fig.show()
produces
import asciiplotlib as apl
numpy.random.seed(123)
sample = numpy.random.normal(size=1000)
counts, bin_edges = numpy.histogram(sample, bins=40)
fig = apl.figure()
fig.hist(counts, bin_edges, grid=[15, 25], force_ascii=False)
fig.show()
produces
asciiplotlib is available from the Python Package Index, so simply do
pip install -U asciiplotlib
to install or upgrade. Use sudo -H
to install as root or the --user
option
of pip
to install in $HOME
.
To run the asciiplotlib unit tests, check out this repository and type
pytest
To create a new release
-
bump the
__version__
number, -
publish to PyPi and tag on GitHub:
$ make publish
asciiplotlib is published under the MIT license.