Skip to main content

Plot in the terminal using braille dots.

Project description

Plotille
========

|Build Status| |Coverage Status| |Tested CPython Versions| |Tested PyPy
Versions| |PyPi version| |PyPi license|

Plot, scatter plots and histograms in the terminal using braille dots,
with no external dependancies. For good visualization, use a font /
terminal with monospaced braille characters.

Install:

::

pipenv install plotille

Similar to other libraries:

- like `drawille <https://github.com/asciimoo/drawille>`__, but focused
on graphing only – plus X/Y-axis.
- like `termplot <https://github.com/justnoise/termplot>`__, but with
braille (finer dots), left to right histogram and linear
interpolation for plotting function.
- like `termgraph <https://github.com/sgeisler/termgraph>`__ (not on
pypi), but very different style.
- like `terminalplot <https://github.com/kressi/terminalplot>`__, but
with braille, X/Y-axis, histogram, linear interpolation.

Documentation
-------------

.. code:: python

In [1]: import plotille
In [2]: import numpy as np
In [3]: X = sorted(np.random.normal(size=1000))

**Plot:**

.. code:: python

In [4]: plotille.plot?
Signature: plot(X, Y, width=80, height=50, X_label='X', Y_label='Y', linesep=os.linesep, interp='linear')
Docstring:
Create plot with X , Y values and linear interpolation between points

Parameters:
X: List[float] X values.
Y: List[float] Y values. X and Y must have the same number of entries.
width: int The number of characters for the width (columns) of the canvas.
hight: int The number of characters for the hight (rows) of the canvas.
X_label: str Label for X-axis.
Y_label: str Label for Y-axis. max 8 characters.
interp: Optional[str] Specify interpolation; values None, 'linear'

Returns:
str: plot over `X`, `Y`.

In [5]: print(plotille.plot(X, np.sin(X), height=50))

.. figure:: https://github.com/tammoippen/plotille/blob/master/imgs/plot.png
:alt: Plot example

Plot example
**Scatter:**

.. code:: python

In [6]: plotille.scatter?
Signature: scatter(X, Y, width=80, height=50, X_label=u'X', Y_label=u'Y', linesep=os.linesep)
Docstring:
Create scatter plot with X , Y values

Basically plotting without interpolation:
`plot(X, Y, ... , interp=None)`

Parameters:
X: List[float] X values.
Y: List[float] Y values. X and Y must have the same number of entries.
width: int The number of characters for the width (columns) of the canvas.
hight: int The number of characters for the hight (rows) of the canvas.
X_label: str Label for X-axis.
Y_label: str Label for Y-axis. max 8 characters.

Returns:
str: scatter plot over `X`, `Y`.

In [7]: print(plotille.scatter(X, np.sin(X), height=50))

.. figure:: https://github.com/tammoippen/plotille/blob/master/imgs/scatter.png
:alt: Plot example

Plot example
**Histogram:**

Inspired by
`crappyhist <http://kevinastraight.x10host.com/2013/12/28/python-histograms-from-the-console/>`__.

.. code:: python

In [8]: plotille.hist?
Signature: hist(X, bins=50, width=80, log_scale=False, linesep=os.linesep)
Docstring:
Create histogram over `X`

The values on the left are the center of the bucket, i.e. `(bin[i] + bin[i+1]) / 2`.
The values on the right are the total counts of this bucket.

Parameters:
X: List[float] The items to count over.
bins: int The number of bins to put X entries in (rows).
width: int The number of characters for the width (columns).
log_scale: bool Scale the histogram with `log` function.

Returns:
str: histogram over `X` from left to right.

In [9]: print(plotille.hist(np.random.normal(size=10000)))

.. figure:: https://github.com/tammoippen/plotille/blob/master/imgs/hist.png
:alt: Histogram example

Histogram example

.. |Build Status| image:: https://travis-ci.org/tammoippen/plotille.svg?branch=master
:target: https://travis-ci.org/tammoippen/plotille
.. |Coverage Status| image:: https://coveralls.io/repos/github/tammoippen/plotille/badge.svg?branch=master
:target: https://coveralls.io/github/tammoippen/plotille?branch=master
.. |Tested CPython Versions| image:: https://img.shields.io/badge/cpython-2.7%2C%203.5%2C%203.6%2C%20nightly-brightgreen.svg
:target: https://img.shields.io/badge/cpython-2.7%2C%203.5%2C%203.6%2C%20nightly-brightgreen.svg
.. |Tested PyPy Versions| image:: https://img.shields.io/badge/pypy-2.7--5.8.0%2C%203.5--5.8.0-brightgreen.svg
:target: https://img.shields.io/badge/pypy-2.7--5.8.0%2C%203.5--5.8.0-brightgreen.svg
.. |PyPi version| image:: https://img.shields.io/pypi/v/plotille.svg
:target: https://pypi.python.org/pypi/plotille
.. |PyPi license| image:: https://img.shields.io/pypi/l/plotille.svg
:target: https://pypi.python.org/pypi/plotille

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

plotille-1.5.tar.gz (7.9 kB view details)

Uploaded Source

File details

Details for the file plotille-1.5.tar.gz.

File metadata

  • Download URL: plotille-1.5.tar.gz
  • Upload date:
  • Size: 7.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for plotille-1.5.tar.gz
Algorithm Hash digest
SHA256 98ff71cee0f4f547ba9dd755dac754d2993dab2c5c13580bdc4c2ecb58eae2c0
MD5 c4b04449a840269c533360eaf3f44201
BLAKE2b-256 258708246c39fd2c034c566bd30f19ad92811f2a0572dfc4ebdf96701cba03a7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page