johnkmj / lomath

Lomath is the data analysts' module in Node JS - data analysis and visualization in Node is now possible with lomath.

Home Page:http://kengz.github.io/lomath/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

lomath

npm version Build Status Coverage Status Dependency Status

Lomath is the data analysts' module in Node JS - data analysis and visualization in Node is now possible with lomath.

It is the mathematical extension of lodash with many high performance functions, generalized and applicable to tensors (multi-arrays). It comes with a standalone plotting module that using HighCharts and BrowserSync.

See the API documentation.

Community

Join the chat at https://gitter.im/kengz/lomath

Installation

Installation:

npm install lomath

To use the plotting module, do:

// in the terminal at your project's root, do:
cd node_modules/lomath
npm install

Usage

See the API documentation for example usage.

Lomath comes with the latest version of lodash, and more. Use it as you would normally use lodash or underscore, and it has many math functions familiar to users of the R language.

For clearer terminology, we call tensors the generic data structures:

data structure terminology
0 scalar = rank-0 tensor
[1, 2, 3] vector = rank-1 tensor
[[1, 2], [3, 4]] matrix = rank-2 tensor
...and so on rank-n tensor

You can also extend lomath and define your own function that applies to tensors, using the function composition module such as _.distribute, _.asso, etc.

Plotting Module

Sample plot

lomath comes with a standalone plotting module that using HighCharts and BrowserSync. Just run your JS file normally when you plot (example below), and it will automatically pull up a browser showing you the charts; you can save them!

Demo: see demo/demo.js for magic.

var _ = require('lomath');

// use lodash as usual
var v = _.range(10);

// lomath: generalized math functions applicable to multi-array
var vv = _.square(v);

console.log(v);
console.log(vv);

// prints all the functions in lomath
// console.log(_.functions(_));


// data visualization: highcharts plotter
// call contructor of highcharts plotter. Note the ()
var hc = _.hc();

// first, list all you wish to plot.
hc.plot(
    [{
        name: "linear",
        data: v
    }, {
        name: "square",
        data: vv
    }],
    "Title 1"
    )

hc.plot(
    [{
        name: "log",
        data: _.log(v)
    }],
    "Title 2"
    )

//optionally you can use the original HighCharts plot options object by:
hc.advPlot(HighChartsOptions);

// Magic here! Finally, the command to render all the plots above.
// Pulls up a browser (default to chrome for better support) with the charts.
// calling hc.render(true) will autosave all plots to your downloads folder.
hc.render();

Roadmap

  • add aliases
  • add Randomjs engine
  • higher dimensional math
  • JSON object methods
  • more stats methods: sample, multidim probs, covarience, distributions
  • performance benchmark

About

Lomath is the data analysts' module in Node JS - data analysis and visualization in Node is now possible with lomath.

http://kengz.github.io/lomath/

License:MIT License


Languages

Language:JavaScript 96.3%Language:CSS 2.7%Language:HTML 1.0%