Skip to content

icyflame/bar-horizontal

Repository files navigation

bar-horizontal Build Status

Create beautiful horizontal charts, that fit your terminal.

Install

$ npm install --save bar-horizontal

Usage

var barHorizontal = require('bar-horizontal');
barHorizontal([6, 5, 4, 3, 2]);
// => Prints this on the console :-
: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 30%
: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 25%
: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 20%
: ▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 15%
: ▇▇▇▇▇▇▇▇▇ 10%


input_obj = {
  'first task': 20,
  'second task': 40,
  'a really really long label!': 90,
  'short one': 20
};

barHorizontal(input_obj, {labels: true});
// => Prints this on the console :-
first task                  : ▇▇▇▇ 12%
second task                 : ▇▇▇▇▇▇▇▇▇ 24%
a really really long label! : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 53%
short one                   : ▇▇▇▇ 12%

CLI

$ npm install --global bar-horizontal

  Create beautiful horizontal charts, that fit your terminal.

  Usage
    $ bar-horizontal input-array
    $ bar-horizontal input-array --values

  Examples
    $ bar-horizontal 1 2 3 4
     : ▇▇▇▇▇▇▇▇ 10%
     : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 20%
     : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 30%
     : ▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇▇ 40%

    $ bar-horizontal 1 2 3 4 --ascii 
     : ======  10.00%
     : =============  20.00%
     : ====================  30.00%
     : ===========================  40.00%

API

barHorizontal(input_obj, [options])

input_obj

Required
Type: Array of Numbers
The array whose bar chart will be created.

options

labels

Optional
Type: Boolean
Default: false
Labels to be shown or not

warnings

Optional
Type: Boolean
Default: false
Whether or not to show warnings (eg. 'missing/invalid input')

ascii

Optional
Type: Boolean
Default: false
Whether or not to use the = when printing the bar graph(s) to stdout.

By default, this module will use the square character from figures.

width

Optional
Type: Number
Default: The width of the present terminal
If supplied, the printed bar graph will look good on a terminal of the supplied width's length.

noPrint

Optional
Type: Boolean
Default: false
Whether barHorizontal should print the results to the console or not. If noPrint is set, then the function will return the string and print nothing to the console

Testing

This module uses the mocha test framework. The test suite can be run by invoking npm test from the root directory.

License

MIT © Siddharth Kannan