ascii-boxplot

1.2.0 • Public • Published

ascii-boxplot

ascii, character-only horizontal boxplots

patates        ·      •    [----[==|==]----]    •    ·
frites       ·   •   [---[=|===]--]   •   ·
poutines       ·   •    [----[=|=]----]     •     ·
choucroutte       ·  •    [----[=|=]-----]   •   ·

IntroductionAPIOptionsLicense

var boxplot = require('boxplot')
boxplot({
  label1: arrayOfSamples1,
  label2: arrayOfSamples2,
  label3: arrayOfSamples3,
})

API

boxplot(sourceData[, options])

  • sourceData object or array of samples. The object keys or array indices are used as labels
  • options optionsal configuration object

Options

The optional options object can override any or all of the internal defaults

var defaults = {
  1: ' • ',
  2: ' [=] ',
  3: ' [=|=] ',
  5: ' [-[=|=]-] ',
  7: ' • [-[=|=]-] • ',
  9: ' · • [-[=|=]-] • · ',
  cols: 0, // will attempt to autodetect if cols is falsy, defaulting to 80
  padding: [4, 4],
  probs: [0, .02, .09, .25, .50, .75, .91, .98, 1],
  ondone: function(str) { console.log(str) }
}
  • 1..9 are the templates for a given quantile size. More info in the template section below
  • cols the maximum width of the screen in characters
  • padding left and right padding (after the longest label and before the right edge)
  • probs the probabilities to be used when calculating the sample quantiles. Can be 1,2,3,5,7 or 9 chars long.
  • ondone the action to do with the completed string

If the sample size is less or equal to probs.length the sample values are used as-is. This means that precomputed quantile values can also be used

Templates

There are different templates for different number of probability points. For example, the default probability [0, .02, .09, .25, .50, .75, .91, .98, 1] has nine points and the display of the resulting values will use template #9.

A template string has 2n+1 characters and has the form svsvsv... where alternating characters are used for actual values v and for spacing.

Examples:

boxplot(data, {
  probs: [0.25, 0.5, 0.75],
  3:`.L-M-H.`
}) // --> something like '....L----M---H....'
boxplot(data, {
  probs: [0.09, 0.25, 0.5, 0.75, 0.],
  3:` |-##|##-| `
}) // --> something like ' |---###|####-----| '

License

Released under the MIT License

Package Sidebar

Install

npm i ascii-boxplot

Weekly Downloads

6

Version

1.2.0

License

MIT

Unpacked Size

6.31 kB

Total Files

4

Last publish

Collaborators

  • hugov
  • hville