Visualize data in the terminal
Go
Latest commit 8959199 Nov 12, 2015 @atsaki Use termui.v1
Permalink
Failed to load latest commit information.
cmd/termeter Use termui.v1 Nov 12, 2015
.gitignore Initial commit Mar 20, 2015
LICENSE Initial commit Mar 20, 2015
README.md Fix example code in README.md Mar 29, 2015
app.go initial commit Mar 23, 2015
barchart.go Use termui.v1 Nov 12, 2015
box.go Use termui.v1 Nov 12, 2015
linechart.go Use termui.v1 Nov 12, 2015
list.go Use termui.v1 Nov 12, 2015
panel.go initial commit Mar 23, 2015
par.go Use termui.v1 Nov 12, 2015
ring.go initial commit Mar 23, 2015
termeter.go Use termui.v1 Nov 12, 2015
util.go initial commit Mar 23, 2015
widget.go Use termui.v1 Nov 12, 2015

README.md

termeter

Visualize data in the terminal

Description

termeter can visualize data in the terminal. Data can be passed by pipe or file.

$  seq 100 | awk 'BEGIN{OFS="\t"; print "x","sin(x)","cos(x)"}{x=$1/10; print x,sin(x),cos(x)}' | termeter

screenshot01

You can even draw charts from streaming data.

$ seq 300 | awk 'BEGIN{OFS="\t"; print "x","sin(x)","cos(x)"}{x=$1/10; print x,sin(x),cos(x); system("sleep 0.1")}' | termeter

Installation

$ go get github.com/atsaki/termeter/cmd/termeter

Input Data

You can input data with stdin or file.

$ cat data.txt | termeter
$ termeter data.txt

termeter can accept tabular data like CSV. Delimiter character can be specified with option '-d DELIMITER'. Default is tab.

Chart types

termeter supports following chart types.

  • LINE
    • Plot values as line plot
  • COUNTER
    • Bar chart of frequencies
  • CDF
    • Cumulative distribution function

By default, termeter choose chart type automatically from second line of data. If value is numeric LINE is choosed. Otherwise, COUNTER is choosed.

You can specify chart type with option -t TYPESTRING. nth character of TYPESTRING corresponds to nth chart type. Following charcters can be used.

  • l: LINE
  • c: COUNTER
  • d: CDF
  • other: auto

Example of chart types

$ (echo "line counter cdf"; seq 1 1000 | awk '{x=int(6*rand())+1; print x,x,x}') | termeter -d " " -t lcd -S numerical

charttype

Use case

It is useful to draw chart of resouce in the terminal. You can use tools like dstat.

$ dstat --cpu --output dstat.log > /dev/null &
$ tail -f -n +7 dstat.log | termeter -d ,

License

MIT