Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
bin
 
 
doc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

diagram

Text mode diagrams using UTF-8 characters and fancy colors (using Python).

Build Status Code Health

Features

  • Axial graphs
  • Horizontal and vertical bar graphs
  • Supports both 3 bit (16 color) and 8 bit (256 color) mode colors with various pre-defined palettes (see below)
  • UTF-8 text graphics

Installation

System requirements for Fedora Core 24:

dnf install ncurses-devel ncurses-compat-libs

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

To install:

$ sudo pip install diagram

To update:

$ sudo pip install -U diagram

To install from github:

$ sudo pip install git+https://github.com/tehmaze/diagram.git

Examples

Pictures say more than a thousand words.

Axis graph

Axis Graph

Horizontal bar graph

Horizontal bar graph

Drawing characters used:

▏ ▎ ▍ ▌ ▋ ▊ ▉ █

Vertical bar graph

Vertical bar graph

Drawing characters used:

▁ ▂ ▃ ▄ ▅ ▆ ▇ █

Usage

Use diagram --help for documentation:

usage: diagram [-h] [-G] [-H] [-V] [-a] [-A] [-c] [-C] [-l] [-L]
               [-f function] [-p palette] [-x characters] [-y characters]
               [-r] [-b] [-s SLEEP] [-i file] [-o file] [-e ENCODING]

optional arguments:
  -h, --help            show this help message and exit

optional drawing mode:
  -G, --graph           axis drawing mode (default)
  -H, --horizontal-bars
                        horizontal drawing mode
  -V, --vertical-bars   vertical drawing mode

optional drawing arguments:
  -a, --axis            draw axis (default: yes)
  -A, --no-axis         don't draw axis
  -c, --color           use colors (default: yes)
  -C, --no-color        don't use colors
  -l, --legend          draw y-axis legend (default: yes)
  -L, --no-legend       don't draw y-axis legend
  -f function, --function function
                        curve manipulation function, use "help" for a list
  -p palette, --palette palette
                        palette name, use "help" for a list
  -x characters, --width characters
                        drawing width (default: auto)
  -y characters, --height characters
                        drawing height (default: auto)
  -r, --reverse         reverse draw graph

optional input and output arguments:
  -b, --batch           batch mode (default: no)
  -k, --keys            input are key-value pairs (default: no) (1)
  -s SLEEP, --sleep SLEEP
                        batch poll sleep time (default: none)
  -i file, --input file
                        input file (default: stdin)
  -o file, --output file
                        output file (default: stdout)
  -e ENCODING, --encoding ENCODING
                        output encoding (default: auto)

(1): only works for the horizontal bar graph, the first argument is the key
and the second value is the data point.

--function ...

The parameter can be just the function name or the function name with arguments, for example:

diagram -f log

or, with an argument:

diagram -f log:e

log

Symmetrical logarithmic scale.

smooth

Smooth (and optionally differentiate) data with a Savitzky-Golay filter.

--palette ...

default / spectrum

Palette Spectrum

grey

Palette Grey

red

Palette Red

green

Palette Green

blue

Palette Blue

Library Usage

from diagram import DGWrapper
gram = DGWrapper(data=[points, values])
gram.show()

About

Text mode diagrams using UTF-8 characters and fancy colors

Resources

License

Packages

No packages published
You can’t perform that action at this time.