Textyplot

Simple, light project for drawing your diagrams with only text.


Keywords
diagram, graph, plotting, text
Install
pip install Textyplot==1.1

Documentation

Textyplot

Simple, light project for drawing your diagrams with only text.

Codacy Badge Build Status Codacy Badge

Features

  • Fast
  • Simple
  • Working with Python 3
  • Supports zooming and adjusting the view.
  • Text graphics with UTF-8 (⣧⡇⢸ )
  • Supports python3+

Installation

It's recommended to use pip to install/update.

To install:

sudo pip install textyplot

To update:

sudo pip install -U textyplot

To install from github:

sudo pip install git+https://github.com/michaelkrukov/textyplot.git

Code

import textyplot

plotter = textyplot.Plotter(points, width=80, height=8)

plotter.show(
  zoom=True, data=True, border=True,
  color=False, fill=True, zero=True,
  html=False, stretch=True
)

plotter.save("file.txt", border=True)

with open("file.txt", "w") as o:
  plotter.write(o, color=True, html=True)

Code examples

import textyplot

plotter = textyplot.Plotter([1, 2, 3, 4, 5, 3, 2, 1], width=80)
plotter.show()

plotter = textyplot.Plotter(i for i in range(100))
plotter.show()

Result

import textyplot

plotter = textyplot.Plotter((i for i in range(100)), width=50)
plotter.show(color=True, fill=False)

Result

import textyplot, math

plotter = textyplot.Plotter((math.sin(i / 5) * 5 for i in range(100)), width=50)
plotter.show(color=True, fill=False)

Result

import textyplot, math

plotter = textyplot.Plotter((math.log(i) for i in range(1, 500)), width=80)
plotter.show(color=True, fill=False)

Result

import textyplot, random

maximum = 48
plotter = textyplot.Plotter(
    random.random() * (maximum / 2 - abs(maximum / 2 - i)) for i in range(maximum)
)
plotter.show(color=True)

Result

Command-line usage

usage: textyplot [-h] [-Z] [-B] [-D] [-C] [-F] [-G] [-H] [-S] [-R]
                 [-X characters] [-Y characters]

Text mode diagrams with possible colors usin UTF-8 colors.


optional arguments:
  -h, --help            show this help message and exit
  -Z, --no-zoom         zoom diagram (default: yes)
  -B, --no-border       draw border (default: yes)
  -D, --no-data         draw values (default: yes)
  -C, --no-color        use colors (default: yes)
  -F, --no-fill         fill diagram (default: yes)
  -G, --no-groud        draw zero line (default: yes)
  -H, --html            render to html (default: no)
  -S, --stretch         stretch points to width
  -R, --reverse         reverse points
  -X characters, --width characters
                        drawing max width (default: 80)
  -Y characters, --height characters
                        drawing height (default: 8)

Command-line examples

./bin/random 100 | python textyplot Example #1

./bin/random 100 | python textyplot -C Example #2

./bin/random 10 | python textyplot -X 80 Example #3

./bin/random 10 | python textyplot -X 80 -S Example #4

./bin/random 400 | python textyplot Example #5

python ./bin/bitcoin.py | python textyplot -f 50 Example #6