/histo

beautiful charts in the terminal for static or streaming data

Primary LanguageC

Histo

Plot charts in the terminal with arbitrary streaming or non-streaming data.

$ histo < data.txt

terminal histogram

Features

  • simple input via stdin
  • simple C API for integration in your tools
  • supports static or streaming data
  • adjusts to terminal width and height
  • adjusts x-axis labels to the integer size
  • negative values reflect as shaded blocks

Use-cases

  • cpu usage
  • memory usage
  • load averages
  • ...

Installation

With cpm:

$ cpm install visionmedia/histo

Or via git clone:

$ cd /tmp && git clone git://github.com/visionmedia/histo.git --depth 1 && cd histo && make install

Examples

histo(1) simply reads from stdin, so it works well with streaming or non-streaming data, from any data source. This repo includes some example files in ./examples, as well as some example shell scripts for streaming input.

Static input

histo(1) simply reads from stdin, so it's easy to throw static data at it for quick analysis:

1
4
5
12
8
15
18
20
5
2
1
5
2
10
2

Displayed with:

$ histo < example.txt

Dynamic input

You may stream data to histo(1) and tell it to quit with EOF, for example here's a small shell script to generate some random data:

while true; do
  echo $RANDOM
  sleep .5
done | histo

Screenshots

Negative values are shown as shaded blocks:

histogram with negative values

Adjusts properly to the size of the terminal:

size adjustment

tall

License

MIT