https://github.com/icyflame/bar-horizontal
Create beautiful horizontal charts, that fit your terminal.
https://github.com/icyflame/bar-horizontal
beautiful-horizontal-charts chart labels module nodejs
Last synced: 7 months ago
JSON representation
Create beautiful horizontal charts, that fit your terminal.
- Host: GitHub
- URL: https://github.com/icyflame/bar-horizontal
- Owner: icyflame
- License: mit
- Created: 2015-06-24T13:58:39.000Z (over 10 years ago)
- Default Branch: master
- Last Pushed: 2022-12-30T20:01:48.000Z (almost 3 years ago)
- Last Synced: 2025-02-27T05:55:57.733Z (7 months ago)
- Topics: beautiful-horizontal-charts, chart, labels, module, nodejs
- Language: JavaScript
- Size: 152 KB
- Stars: 38
- Watchers: 3
- Forks: 3
- Open Issues: 8
-
Metadata Files:
- Readme: readme.md
- License: license
Awesome Lists containing this project
README
# bar-horizontal [](https://travis-ci.org/icyflame/bar-horizontal)
> Create beautiful horizontal charts, that fit your terminal.
## Install
```
$ npm install --save bar-horizontal
```## Usage
```js
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 --valuesExamples
$ 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](https://github.com/sindresorhus/figures/blob/dfeeb1c1733a9fe6f6b13d25f37c440ba6750c0e/index.js#L10)
character from [figures](https://www.npmjs.com/package/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](https://mochajs.org/) test framework. The test suite can be run by invoking `npm test` from the root directory.## License
MIT © [Siddharth Kannan](http://icyflame.github.io)