@gribnoysup/wunderbar

2020-01-22

Simple horizontal bar chart drawer for your terminal

@gribnoysup/wunderbar

Have you ever wanted to print some pretty bar charts in your terminal? You are in the right place!

wunder-bar-cli-all

Wunderbar can print horisontal bar chart with legend and chart scale straight to your terminal. Or you can use it as a module in your code and get all the building blocks to print chart yourself.

Wunderbar uses partial block characters (▏▎▍▌▋▊▉█) to print the most precise charts possible:

wunder-bar-precise

Use in terminal

echo "[1, 2, 3, 4, 5]" | npx @gribnoysup/wunderbar --min 0

wunder-bar-echo-json

cat data.json | npx @gribnoysup/wunderbar --min 0

wunder-bar-cat-file

Use in your code

npm i --save @gribnoysup/wunderbar
const wunderbar = require('@gribnoysup/wunderbar');
const data = require('./data.json');

const printData = () => {
  const { chart, legend, scale, __raw } = wunderbar(data, {
    min: 0,
    length: 42,
  });

  console.log();
  console.log(chart);
  console.log();
  console.log(scale);
  console.log();
};

printData();

Limitations

  • Wunderbar supports only node >= 6

  • Wunderbar uses chalk.hexto add color to your charts. Chalk is pretty smart to downgrade the color if it is not supported by your terminal, but output may vary in different terminals.

API

wunderbar(values, [options]) ⇒ OutputValue

ParamTypeDefaultDescription
valuesArray<InputValue>Values to draw on a chart
[options]ObjectChart drawing options
[options.min]numbermin value from valuesMin chart value (inclusive)
[options.max]numbermax value from valuesMax chart value (inclusive)
[options.length]numberterminal widthChart length
[options.sort]"min" | "max" | "none" | (a: NormalizedValue, b: NormalizedValue) => number"none"Sort method for chart values
[options.randomColorOptions]Object{}randomColor optionsfor color generation
[options.format]string | (a: number) => string"0.00"Value format method. String values are Numeral.js formatstrings

All options are also supported in the cli version:

echo "[1000, 3000, 5000, 7000, 9000, 11000]" | \
  npx @gribnoysup/wunderbar --min 0 --max 15000 --length 42 --sort min --randomColorOptions '{ "seed": "unicorn" }' --format "0a"

wunder-bar-cli-all

Types

InputValue: { value: number, color?: string, label?: string } | number | string

OutputValue: { legend: string, scale: string, chart: string, __raw: RawData }

RawData: { chartLength: number, minValue: number, minValueFormatted: string, maxValue: number, maxValueFormatted: string, normalizedValues: NormalizedValue[] }

NormalizedValue: { normalizedValue: number, rawValue: number, formattedValue: string, color: string, label: string, lineLength: number, chartBar: string, coloredChartBar: string }

License

MIT

Repository

https://github.com/gribnoysup/wunderbar.git


上一篇:通过示例教你如何打造一个组件库
下一篇:eslint-config-calvium
相关教程
关注微信

扫码加入 JavaScript 社区

相关文章
暂无相关文章

首次访问,需要验证
微信扫码,关注即可
(仅需验证一次)

欢迎加入 JavaScript 社区

号内回复关键字:

回到顶部