Regroupez, regroupez, combinez et agrégez des ensembles de données de grande dimension pour des analyses visuelles interactives. Définissez des sections transversales simples (de dimension inférieure) de vos données, appelées filtres. Les filtres partitionnent (bin) les données et peuvent faire des agrégations (sommes, moyennes, écarts types, etc.). Le résultat est renvoyé sous la forme d'un simple tableau que vous pouvez tracer ou analyser (voir aussi les autres projets SPOT). Tous les filtres sont liés et mis à jour automatiquement.
En utilisant une seule API, il peut fonctionner entièrement côté client, via crossfilter, ou il peut utiliser une base de données PostgreSQL en utilisant le spot-server
.
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 ( ) ;
La documentation du spot peut être trouvée ici.
Jisk Attema, Centre eScience des Pays-Bas