Quick & smart charting for STDIN
Quick & smart charting for STDIN
chart [options]
pie
: render a pie chartbar
: render a bar chartline
: render a line chartscatter
: render a scatter plot chartlog
: use logarithmic scale (bar chart only)legacy-color
: use legacy colorsgradient
: use color gradients' '|';'|','|'\t'
: this character separates columns on each line (\t = default)-t|--title
: title for the chart-x
: label for the x axis-y
: label for the y axis--date-format
: Sets the date format, according to https://golang.org/src/time/format.go
--debug
: Use to make sure to double-check the chart is showing what you expect.-h|--help
: Show help--zero-based
: Makes y-axis begin at zerogo install github.com/marianogappa/chart@latest
or get the latest binary for your OS in the Releases section.
history | awk '{print $2}' | chart
curl -s http://api.fixer.io/latest?base=USD | jq -r ".rates | to_entries| \
map(\"\(.key)\t\(.value|tostring)\")|.[]" | chart bar log -t "Currency value against USD"
USER=???
ACCESS_TOKEN=???
curl -u $USER:$ACCESS_TOKEN -s "https://api.github.com/user/repos" | \
jq -r 'map(.languages_url) | .[]' | xargs curl -s -u $USER:$ACCESS_TOKEN | \
jq -r '. as $in| keys[] | [.+ " "]+[$in[.] | tostring] | add' | \
awk '{arr[$1]+=$2} END {for (i in arr) {print i,arr[i]}}' | \
awk '{print $2 "\t" $1}' | sort -nr | chart bar
curl -s "https://api.github.com/repos/marianogappa/chart/stargazers?page=1&per_page=100" \
-H"Accept: application/vnd.github.v3.star+json" | \
jq --raw-output 'map(.starred_at) | .[]' | awk '{print NR "\t" $0}' | \
chart line --date-format 2006-01-02T15:04:05Z
chart
works great with sql, or with any mysql -Nsre '...'
query.
Me neither. Add --debug
to double-check (e.g. some rows could be being ignored due to parse failures, separator could be incorrect, column types could be inferred wrongly).
$ cat /tmp/c | ./chart bar --debug
Lines read 3
Line format inferred ff
Lines used 3
Float column count 2
String column count 0
Date/Time column count 0
Chart type bar
Scale type linear
Separator [tab]
chart
infers STDIN format by analysing line format on each line (doesn't infer separator though; defaults to \t
) and computing the winner format.chart
infers a "word frequency pie chart" use case.PRs are greatly appreciated and are currently being merged.
If you have a use case that is not supported by chart
, I'd love to hear about it, but if it's too complex I'd recommend you to try gnuplot.
Requires Go version >= 1.11 with module support for building and testing.
Requires Goreleaser for building and publishing releases.
See Makefile for build and test commands.