A set of view components to visualise data returned by a Babbage API.
Install from npm, and use in your app. See the docs, and below, for more information.
The library provides a DSL, query frontend and visualisation functions running against the Babbage Analytical Engine API. The intent is to make a re-usable set of angular-based front-end components for business intelligence.
There are two ways to use angular bindings in your application:
requirecomponents from/src/bindings/*(ES2016 code) or from/lib/bindings/*(compiled sources) directory;- add
/dist/babbage-*.jsor/dist/babbage-*.min.jsfile to html page. Important note: ensure thatc3,d3andjQueryobjects are available in global scope. They are marked as external to allow extending them. Also see notes for some visualizations.
Then you should initialize library components, in example:
// This two lines should be used only with CommonJS code;
// when using webpack bundles - angular and Babbage will be available
// in global scope
var angular = require('angular');
var Babbage = require('babbage.ui/lib/bindings/angular');
var pieDirective = new Babbage.PieChartDirective();
var chartDirective = new Babbage.ChartDirective();
var treeMapDirective = new Babbage.TreemapDirective();
var bubbleTreeDirective = new Babbage.BubbleTreeDirective();
var tableDirective = new Babbage.BabbageTableDirective();
var geoViewDirective = new Babbage.GeoViewDirective();
var pivotTableDirective = new Babbage.PivotTableDirective();
var factsDirective = new Babbage.FactsDirective();
var sankeyDirective = new Babbage.SanKeyChartDirective();
var module = angular.module('babbage.ui', []);
pieDirective.init(module);
chartDirective.init(module);
treeMapDirective.init(module);
tableDirective.init(module);
bubbleTreeDirective.init(module);
geoViewDirective.init(module);
pivotTableDirective.init(module);
factsDirective.init(module);
sankeyDirective.init(module);Common parameters for each visualization:
aggregates- string; single key of measure.filter- array of strings; each string should contain key of dimension and filter value, separated by pipe|.order- array of objects; each object should havekey(key of measure or dimension) anddirectionfields. Possible values fordirectionareascanddesc.
Other visualizations may require other additional parameters.
<tree-map endpoint="http://example.com/api/" cube="demo" state="state"></tree-map>
<bubbletree endpoint="http://example.com/api/" cube="demo" state="state"></bubbletree>
<facts endpoint="http://example.com/api/" cube="demo" state="state"></facts>
<babbage-table endpoint="http://example.com/api/" cube="demo" state="state"></babbage-table>
<geo-view endpoint="http://example.com/api/" cube="demo" state="state"
cosmo-endpoint="http://example.com/cosmopolitan/"
currency-sign="USD"
country-code="US"></geo-view>
<chart type="bar" endpoint="http://example.com/api/" cube="demo" state="state"></pivot>
<chart type="line" endpoint="http://example.com/api/" cube="demo" state="state"></pivot>
<pie-chart endpoint="http://example.com/api/" cube="demo" state="state"></pie-chart>
<pie-chart type="donut" endpoint="http://example.com/api/" cube="demo" state="state"></pie-chart>Additional required fields:
group- array of strings - keys of dimensions to group by.
Important notes:
- BubbleTree requires bubbletree library (take care about its dependencies too).
- TreeMap and Map visualizations require d3 library.
- All charts require c3 library.
<pivot-table endpoint="http://example.com/api/" cube="demo" state="state"></pivot-table>Additional required fields:
rows- array of strings - keys of dimensions to use as rows.cols- array of strings - keys of dimensions to use as columns.
<san-key-chart endpoint="http://example.com/api/" cube="demo" state="state"></san-key-chart>Additional required fields:
source- string - key of dimension to use as source (left nodes on graph).target- string - key of dimension to use as target (right nodes on graph).
Important note: this visualization requires sankey plugin for d3.
Clone the repository and open index.html to see babbage in action, no pre-config required.
- Dev tool installation with npm:
npm install(seepackage.json). - Compile library sources using
npm run build:lib. - Use
npm run build:distornpm run build:dist:minto createwebpackbundles for each binding. Also usenpm run buildto completely rebuild the library. - Run tests with
npm test. - Check code style with
npm run review. Runnpm run fixto check code style and automatically fix errors.