Skip to main content

# diagram

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

[![Build Status][cib]][ci] [![Code Health][lsb]][ls]

[ci]: https://travis-ci.org/tehmaze/diagram [cib]: https://travis-ci.org/tehmaze/diagram.svg [ls]: https://landscape.io/github/tehmaze/diagram/issue/9/custom_colors [lsb]: https://landscape.io/github/tehmaze/diagram/issue/9/custom_colors/landscape.svg?style=flat

## 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](https://github.com/tehmaze/diagram/raw/master/doc/axisgraph.png)

### Horizontal bar graph

![Horizontal bar graph](https://github.com/tehmaze/diagram/raw/master/doc/horizontalbar.png)

Drawing characters used:

▏ ▎ ▍ ▌ ▋ ▊ ▉ █

### Vertical bar graph

![Vertical bar graph](https://github.com/tehmaze/diagram/raw/master/doc/verticalbar.png)

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](https://github.com/tehmaze/diagram/raw/master/doc/palette-spectrum.png)

#### grey

![Palette Grey](https://github.com/tehmaze/diagram/raw/master/doc/palette-grey.png)

#### red

![Palette Red](https://github.com/tehmaze/diagram/raw/master/doc/palette-red.png)

#### green

![Palette Green](https://github.com/tehmaze/diagram/raw/master/doc/palette-green.png)

#### blue

![Palette Blue](https://github.com/tehmaze/diagram/raw/master/doc/palette-blue.png)

## Library Usage

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

Release files for diagram 0.2.28

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for diagram 0.2.28
File Size Uploaded
diagram-0.2.28.tar.gz 96.5 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for diagram 0.2.28
File Interpreter ABI Platform
diagram-0.2.28-py3-none-any.whl Python 3 none any Details
diagram-0.2.28-py2-none-any.whl Python 2 none any Details

Total release size: 124.0 kB

Release files / diagram-0.2.28.tar.gz

Download URL diagram-0.2.28.tar.gz
Size 96.5 kB
Tags Source
SHA-256 checksum
How to use checksums
cad92799c4340bc57a757f598024779f4866fcda49f17764d0f148a57d3f9d5c
BLAKE2b-256 checksum
How to use checksums
6cbb98ad98f7e3df872729db276de7c6dd36a97a8c480651b2caf6dafaf051f4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.10

Release files / diagram-0.2.28-py3-none-any.whl

Download URL diagram-0.2.28-py3-none-any.whl
Size 13.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
996663dff771b6e45ed983647808caf89de22f7eb860b02822b31f85460729ab
BLAKE2b-256 checksum
How to use checksums
701694b01e4773cc4c23be369eb5b0b7de8a9f7e572672f40f5a1ca5d1b9e41b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.10

Release files / diagram-0.2.28-py2-none-any.whl

Download URL diagram-0.2.28-py2-none-any.whl
Size 14.5 kB
Tags Python 2
SHA-256 checksum
How to use checksums
1d3529751c3b0c6437fa78abf91b6d5709cdc8a6a963c3e548c36dab7b607e41
BLAKE2b-256 checksum
How to use checksums
a800adda52528ca8fcb99b73f828012be192256aa81ebab4bc864816141e3dd8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/1.13.0 pkginfo/1.5.0.1 requests/2.9.1 setuptools/41.0.1 requests-toolbelt/0.9.1 tqdm/4.32.1 CPython/2.7.10

Release history Release notifications | RSS feed

This release

0.2.28 This release

3 release files

0.2.25

2 release files

0.2.24

2 release files

0.2.23

1 release file

0.2.22

1 release file

0.2.21

1 release file

0.1

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page