@anjson/stats-charts

2.0.5 • Public • Published

@anjson/stats-charts

This package offers methods to get stats and to append charts to the DOM based on a collection of data.

Installation

  npm i @anjson/stats-charts

Usage


StatsCollection

A class instanciated with an array of numbers or an array of objects with at least a value-property.

  // Import with bundler like (webpack/vite etc).
  import { StatsCollection } from '@anjson/stats-charts'

  // Import without bundler.
  import { StatsCollection } from './node_modules/@anjson/stats-charts/index.js'

  const statsCollection = new StatsCollection([100, 110, 5, 12])

  console.log(statsCollection.getCollectionOfDataWithPercent())
  /*
  [
    { value: 100, percent: 0.44052863436123346 },
    { value: 110, percent: 0.4845814977973568 }, 
    { value: 5, percent: 0.022026431718061675 }, 
    { value: 12, percent: 0.05286343612334802 }  
  ]
  */

Properties

  • collectionOfData

    The array of data set in the constructor.



Methods

  • constructor

    Create an instance of the StatsCollection. The argument should be an array of numbers or an array of objects with at least a value-property.

    arguments: number[ ] | object [ ]
    throws: TypeError
    returns: number


  • getMinimumValue

    Get the minimum value in the collection of data.
    returns: number


  • getMaximumValue

    Get the maximum value in the collection of data.
    returns: number


  • getDataWithMaximumValues

    Get an array containing the data from the collection of data with the maximum values.
    returns: number[ ] | object[ ]


  • getDataWithMinimumValues

    Get an array containing the data from the collection of data with the minimum values.
    returns: number[ ] | object[ ]


  • getAverageValue

    Get the average-value from the collection of data.
    returns: number


  • getCollectionOfDataWithPercent

    Get a copy of the collection of data converted to array of objects with calculated number in percent-property.
    returns: object[ ]


  • getSumOfCollection

    Get the sum of values in the collection of data.
    returns: number



ChartDrawer

A class instanciated with an array of numbers or an array of objects with at least a value-property. The class appends custom DOM-element to illustrate data in charts.

  <div id="pie-chart"></div>
  <div id="bar-chart"></div>
  // Import with bundler like (webpack/vite etc).
  import { ChartDrawer } from '@anjson/stats-charts'

  // Import without bundler.
  import { ChartDrawer } from './node_modules/@anjson/stats-charts/index.js'

  const chartDrawer = new ChartDrawer([{ title: 'a', value: 100 }, { title: 'a', value: 110 }, { title: 'a', value: 5 }, { title: 'a', value: 12 }])

  chartDrawer.appendPieChart('pie-chart', { title: true, percent: true, value: true })
  chartDrawer.appendBarChart('bar-chart', { title: true, percent: true, value: true, average: true })

Methods

  • constructor

    Create an instance of the ChartDrawer. The argument should be an array of numbers or an array of objects with at least a value-property.
    arguments: number[ ] | object [ ]
    throws: TypeError
    returns: number


  • appendPieChart

    Create an instance of the StatsCollection. The argument should be an array of numbers or an array of objects with at least a value-property.
    arguments:

    • elementId: (string) - The id of the DOM-element to append the chart to. The name should be a plain string without css-selector

    • options: (object) -
      value: (boolean) - If to display meta-data with the value.
      title: (boolean) - If to display meta-data with the title.
      percent: (boolean) - If to display percent with one decimal in the meta-data.

    throws: Error | TypeError


  • appendBarChart

    Create an instance of the StatsCollection. The argument should be an array of numbers or an array of objects with at least a value-property.
    arguments:

    • elementId: (string) - The id of the DOM-element to append the chart to. The name should be a plain string without css-selector

    • options: (object) -
      value: (boolean) - If to display meta-data with the value.
      title: (boolean) - If to display meta-data with the title.
      percent: (boolean) - If to display percent with one decimal in the meta-data.
      average: (boolean) - If to display a line in the bar-chart representing the average-value.

    throws: Error | TypeError


Test report

Contribute

Work with the repository(https://github.com/AnJson/stats-charts) locally and make a pull-request to make contributions to the package.

Contribution with features like these are always more than welcome:

  • More chart-types.
  • More types of statistics.
  • Update charts to handle more meta-data.
  • Improve layout of charts.
  • Bug-fixes. etc.

Package Sidebar

Install

npm i @anjson/stats-charts

Weekly Downloads

1

Version

2.0.5

License

MIT

Unpacked Size

54.4 kB

Total Files

29

Last publish

Collaborators

  • anjson