diff options
author | Sergey Grebenshchikov <sgreben@gmail.com> | 2018-03-22 02:15:42 +0100 |
---|---|---|
committer | Sergey Grebenshchikov <sgreben@gmail.com> | 2018-03-22 10:04:51 +0100 |
commit | a49891bdb657d7cbb2521f305251cda1f00359d3 (patch) | |
tree | bb438378e68025641c54d0b2f2dfdcc73c33a4b0 /README.md |
Initial commit1.0.0
Diffstat (limited to 'README.md')
-rw-r--r-- | README.md | 202 |
1 files changed, 202 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..13b4382 --- /dev/null +++ b/README.md @@ -0,0 +1,202 @@ +# jp + +Dead simple terminal plots from JSON data. Bar charts and line charts are supported. + +<!-- TOC --> + +- [Get it](#get-it) +- [Use it](#use-it) +- [Examples](#examples) + - [Bar chart](#bar-chart) + - [Separate X and Y values](#separate-x-and-y-values) + - [XY pairs](#xy-pairs) + - [Y values only (X=index)](#y-values-only-xindex) + - [Array data](#array-data) + - [Line chart](#line-chart) + - [Y values only (X=index)](#y-values-only-xindex-1) + - [Array data, separate X and Y values](#array-data-separate-x-and-y-values) + - [Array data, XY pairs](#array-data-xy-pairs) + +<!-- /TOC --> + +## Get it + +```bash +go get -u github.com/sgreben/jp/cmd/jp +``` + +Or [download the binary](https://github.com/sgreben/jp/releases/latest) from the releases page. + +```bash +# Linux +curl -LO https://github.com/sgreben/jp/releases/download/1.0.0/jp_1.0.0_linux_x86_64.zip +unzip jp_1.0.0_linux_x86_64.zip + +# OS X +curl -LO https://github.com/sgreben/jp/releases/download/1.0.0/jp_1.0.0_osx_x86_64.zip +unzip jp_1.0.0_osx_x86_64.zip + +# Windows +curl -LO https://github.com/sgreben/jp/releases/download/1.0.0/jp_1.0.0_windows_x86_64.zip +unzip jp_1.0.0_windows_x86_64.zip +``` + +## Use it + +`jp` reads JSON on stdin and prints plots to stdout. + +```text +Usage of jp: + -type value + Plot type. One of [line bar] (default line) + -x string + x values (JSONPath expression) + -y string + y values (JSONPath expression) + -xy string + x,y value pairs (JSONPath expression). Overrides -x and -y if given. + -height int + Plot height (default 0 (auto)) + -width int + Plot width (default 0 (auto)) +``` + +## Examples + +### Bar chart + +#### Separate X and Y values + +```bash +$ cat examples/tcp-time.json | jp -x ..Label -y ..Count -type bar + 69.0 + █████████████ + █████████████ + █████████████ + █████████████ + █████████████ 21.0 + █████████████ █████████████ 7.0 2.0 1.0 + █████████████ █████████████ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ + + 46.85267ms 48.38578ms 49.91889ms 51.452ms 52.98511ms +``` + + +#### XY pairs + +```bash +$ cat examples/tcp-time.json | jp -xy "..[Label,Count]" -type bar + 69.0 + █████████████ + █████████████ + █████████████ + █████████████ + █████████████ 21.0 + █████████████ █████████████ 7.0 2.0 1.0 + █████████████ █████████████ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ + + 46.85267ms 48.38578ms 49.91889ms 51.452ms 52.98511ms +``` + +#### Y values only (X=index) + +```bash +$ cat examples/tcp-time.json | jp -y ..Count -type bar + + 69.0 + █████████████ + █████████████ + █████████████ + █████████████ + █████████████ 21.0 + █████████████ █████████████ 7.0 2.0 1.0 + █████████████ █████████████ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ ▁▁▁▁▁▁▁▁▁▁▁▁▁ + + 0 1 2 3 4 +``` + +#### Array data + +```bash +$ echo '[[-3, 5], [-2, 0], [-1, 0.1], [0, 1], [1, 2], [2, 3]]' | jp -xy '[*][0, 1]' -type bar + + 5.0 + ███████████ + ███████████ + ███████████ 3.0 + ███████████ ███████████ + ███████████ 2.0 ███████████ + ███████████ 0.0 0.1 1.0 ███████████ ███████████ + ███████████ ▁▁▁▁▁▁▁▁▁▁▁ ███████████ ███████████ ███████████ + + -3 -2 -1 0 1 2 +``` + +### Line chart + +#### Y values only (X=index) + +```bash +$ cat examples/tcp-time.json | jp -y ..Duration + +59970040.9│ + │ + │ + │ █ + │██ + │██ █ + │█ █ █ █ + y█ █ ██ ██ █ █ ███ ███ █ █ █ + │ ██ ██ ███ ████ ███ ██ █ ██ █ ███ █ ██ █ █ ██ ██ ██ ██ █ ██ █ █ █ █ + │ █ █ ██ █ ██ ████ ██ █████ ██████ █ ██ ████████ █ ██ █ + │ + │ + │ +42167403.0└───────────────────────────────────────x───────────────────────────────────────────────── + 0.0 99.0 + +``` + +#### Array data, separate X and Y values + +```bash +$ jq -n '[range(200)/20 | [., sin]]' | jp -x '[*][0]' -y '[*][1]' + +1.1 │ ███████ ██████ + │ ███ ███ ███ ███ + │ ███ ██ ██ ███ + │ ██ ███ ██ ██ + │ █ ██ ██ ███ + │██ ██ ██ ██ + │█ █ ██ ██ + y █ ██ █ + │ ██ ██ ██ + │ ██ ██ ██ + │ ██ ██ + │ ██ ████ + │ ██████ +-1.1└───────────────────────────────────x─────────────────────────────────────── + 0.0 9.9 +``` + +#### Array data, XY pairs + +```bash +$ jq -n '[range(200)/20 | [., sin]]' | jp -xy '[*][0, 1]' + +1.1 │ ███████ ██████ + │ ███ ███ ███ ███ + │ ███ ██ ██ ███ + │ ██ ███ ██ ██ + │ █ ██ ██ ███ + │██ ██ ██ ██ + │█ █ ██ ██ + y █ ██ █ + │ ██ ██ ██ + │ ██ ██ ██ + │ ██ ██ + │ ██ ████ + │ ██████ +-1.1└───────────────────────────────────x─────────────────────────────────────── + 0.0 9.9 +``` |