A simple python lib to print data as ascii histograms.
Project description
py-ascii-graph
A simple python lib to print data as ascii histograms
- Git:
- PyPI:
- Doc:
- License:
MIT
- Author:
Pierre-Francois Carpentier - copyright 2014
License
py-ascii-graph is released under the MIT License.
Description
py-ascii-graph is a simple python library to build ascii histograms. Just give it a label and a list of tuples (description, value) and it will automaticaly creates a nice histogram, with all the stuff aligned and fitting in a fixed width line (if possible).
py-ascii-graph although comes with a command line utility.
Examples
Library
Simple example:
from ascii_graph import Pyasciigraph
test = [('long_label', 423), ('sl', 1234), ('line3', 531),
('line4', 200), ('line5', 834)]
graph = Pyasciigraph()
for line in graph.graph('test print', test):
print(line)
Result:
test print
###############################################################################
████████████████████ 423 long_label
█████████████████████████████████████████████████████████████ 1234 sl
██████████████████████████ 531 line3
█████████ 200 line4
█████████████████████████████████████████ 834 line5
Complex examples (colors, different spacing, no label…):
from ascii_graph import Pyasciigraph
from ascii_graph.colors import *
from ascii_graph.colordata import vcolor
from ascii_graph.colordata import hcolor
test = [('long_label', 423), ('sl', 1234), ('line3', 531),
('line4', 200), ('line5', 834)]
# One color per line
print('Color example:')
pattern = [Gre, Yel, Red]
data = vcolor(test, pattern)
graph = Pyasciigraph()
for line in graph.graph('vcolor test', data):
print(line)
# Multicolor on one line
print('\nMultiColor example:')
# Color lines according to Thresholds
thresholds = {
51: Gre, 100: Blu, 350: Yel, 500: Red,
}
data = hcolor(test, thresholds)
# graph with colors, power of 1000, different graph symbol,
# float formatting and a few tweaks
graph = Pyasciigraph(
line_length=120,
min_graph_length=50,
separator_length=4,
multivalue=False,
human_readable='si',
graphsymbol='*',
float_format='{0:,.2f}',
force_max_value=2000,
)
for line in graph.graph(label=None, data=data):
print(line)
Command Line Utility
command line:
$ asciigraph -h
Usage: asciigraph [-l <label>] [-f file] [-s inc|dec] \
[-c] [-t <first color threshold> [-T <second color threshold>] \
[-w <number of char>] [-m <min len of char>] [-H] [-M cs|si]
examples:
printf 'label1:10\nlabel2:100\n' | asciigraph -l 'my graph'
printf 'label1:1000\nlabel2:20000\n' | asciigraph -l 'my graph' -H -M 'si'
printf 'l1:100\nl2:1200.42\n' > ./mf; asciigraph -l 'my graph' -f ./mf
asciigraph -l 'my graph' -f mf -s inc
asciigraph -l 'my graph' -f mf -s dec -w 60 -m 10
asciigraph -l 'my graph' -f mf -c -F '{0:,.2f}'
asciigraph -l 'my graph' -f mf -c -t 5 -T 50
Options:
-h, --help show this help message and exit
-f FILE, --file=FILE import data from FILE (one data per line,
format: <label>:<value>)
-s SORT, --sort=SORT sort type: inc (increasing) or dec (decreasing)
-l LAB, --label=LAB label of the graph
-w WIDTH, --width=WIDTH
width of the graph
-m LEN, --min_graph=LEN
minimum length of the graph bar
-c, --color Color the graph
-t TC1, --threshold-1=TC1
first color threshold, only make sense if --color is
passed
-T TC2, --threshold-2=TC2
second color threshold, only make sense if --color is
passed
-H, --human-readable enable human readable mode (K, M, G, etc)
-M HR_MODE, --human-readable-mode=HR_MODE
Human readable mode ('cs' -> power of 1024 or 'si' ->
power of 1000, default: cs)
-F FORMAT, --float-format=FORMAT
float formatting, ex: {0:,.2f}
See the examples/ directory for more examples.
Installation
$ pip install ascii_graph
or
$ easy_install ascii_graph
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file ascii_graph-1.5.1.tar.gz
.
File metadata
- Download URL: ascii_graph-1.5.1.tar.gz
- Upload date:
- Size: 24.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | c1844fe309cd221f35f19efc58c5c7157941e35172d486d7c824ba5ad1d05f71 |
|
MD5 | 64259e18f314d332433c29ac4454ef4f |
|
BLAKE2b-256 | ab5790a36a9377d72cfc09a433019182030daf9bdd64db97c5808867a6ddbc57 |