Data visualization in the terminal.
From PyPI:
pip install viz
The CLI entry point is viz
.
Read floats from stdin
and plot as a single line histogram.
Example: ping google every 100ms (0.1s) and plot the first 50 response times you get back:
ping -i 0.1 google.com | head -50 | sed -n 's/.*time=\(.*\) ms/\1/p' | viz hist
Example result (which should fit your terminal width automatically):
26.1390000[▁ ▁▁ ▁▁▂▂ ▉ ▂▂ ▃ ▂▁▂ ▁ ▁▁ ▁ ▁ ]39.5580000
Read floats from stdin
and sum them.
No graphics, but useful because awk '{sum+=$1}END{print sum}
is too long.
Example: count the bytes used by the current directory and its children.
find . -ls | tr -s ' ' | cut -d ' ' -f 7 | viz total
Example result:
8519086.0
Compare to du:
echo $[$(du -sk . | cut -f 1) * 1024]
> 8531968
Read floats from stdin
, plot on a single line from left to right with as much granularity as the terminal will allow. Otherwise, bin incrementally and plot the arithmetic mean of each bin.
Example: ping some really awful website every 100ms, plot the first 100 successful responses (takes about 10s).
ping -i 0.1 godaddy.com | head -100 | sed -n 's/.*time=\(.*\) ms/\1/p' | viz points
Example result:
[+156.298000]
▃▃ ▁▃ ▁ ▁▁ ▁ ▁ ▁▁▁▂ ▃▂ ▉▂ ▁ ▁▁ ▁▂▁ ▁ ▁ ▁ ▁
[+70.593000]
The top line is the maximum, the bottom is the minimum. The other values are scaled linearly between those extremes.
numpy
- Matplotlib: feels archaic to the touch. The pyplot fans have never run
import this
, the interface is unguessable and murkily documented. - Bokeh: haven't used yet
- Vispy: haven't used yet
Copyright (c) 2013–2020 Christopher Brown. MIT Licensed.