Gruppieren, sortieren, kombinieren und aggregieren Sie hochdimensionale Datensätze für interaktive visuelle Analysen. Definieren Sie einfache (niederdimensionale) Querschnitte Ihrer Daten, sogenannte Filter. Filter unterteilen (binieren) die Daten und können Aggregationen durchführen (Summen, Durchschnittswerte, Standardabweichungen usw.). Das Ergebnis wird als einfaches Array zurückgegeben, das Sie plotten oder analysieren können (siehe auch die anderen SPOT-Projekte). Alle Filter sind verknüpft und aktualisieren sich automatisch.
Mit einer einzigen API kann es vollständig clientseitig über Crossfilter ausgeführt werden oder eine PostgreSQL-Datenbank mithilfe von spot-server
verwenden.
git clone https://github.com/NLeSC/spot-framework.git && cd spot
npm install
// get a new Spot instance
var Spot = require ( './src/me' ) ;
var spot = new Spot ( ) ;
// add a dataset
var dataset = spot . datasets . add ( {
name : 'My data'
} ) ;
// add some data to the dataset
dataset . crossfilter . add ( [
{ firstName : 'John' , lastName : 'Smith' , age : 35 } ,
{ firstName : 'Mary' , lastName : 'Smith' , age : 49 } ,
{ firstName : 'Little' , lastName : 'Smith' , age : 8 } ,
{ firstName : 'Dee' , lastName : 'Jones' , age : 5 } ,
{ firstName : 'Doo' , lastName : 'Jones' , age : 9 }
] ) ;
// Have SPOT scan the dataset:
// 1. it auto-detects 'firstName', 'lastName', and 'age' attributes
// 2. it creates the corresponding Facets
dataset . scan ( ) ;
// make the dataset active
spot . toggleDataset ( dataset ) ;
var dataview = spot . dataview ;
// add a filter
var filter = dataview . filters . add ( {
title : 'filter one'
} ) ;
// ... that partitions the data on 'lastName'
filter . partitions . add ( [
{ facetName : 'lastName' , rank : 1 }
] ) ;
filter . partitions . forEach ( function ( partition ) {
partition . setGroups ( ) ;
} ) ;
// ... and that takes the average over the 'age'
filter . aggregates . add ( [
{ facetName : 'age' , rank : 1 , operation : 'avg' }
] ) ;
// initialize the filter
filter . initDataFilter ( ) ;
// listen to data
filter . on ( 'newData' , function ( ) {
console . log ( 'data: ' , filter . data ) ;
} ) ;
dataview . getData ( ) ;
Die Spot-Dokumentation finden Sie hier.
Jisk Attema, das niederländische eScience-Zentrum