DC.js - Einführung in Crossfilter
Crossfilter ist ein mehrdimensionaler Datensatz. Es unterstützt eine extrem schnelle Interaktion mit Datensätzen, die eine Million oder mehr Datensätze enthalten.
Grundlegendes Konzept
Crossfilter wird unter dem Crossfilter-Namespace definiert. Es verwendet semantische Versionierung. Stellen Sie sich ein Crossfilter-Objekt vor, das mit einer Sammlung von Früchten geladen ist, die unten definiert ist:
var fruits = crossfilter ([
{ name: “Apple”, type: “fruit”, count: 20 },
{ name: “Orange”, type: "fruit”, count: 10 },
{ name: “Grapes”, type: “fruit”, count: 50 },
{ name: “Mango”, type: “fruit”, count: 40 }
]);
Wenn wir die Gesamtdatensätze in einer Gruppe ausführen müssen, können wir die folgende Funktion verwenden:
var count = fruits.groupAll().reduceCount().value();
Wenn wir nach einem bestimmten Typ filtern möchten -
var filtering = fruits.dimension(function(d) { return d.type; });
filtering.filter(“Grapes”)
Ebenso können wir eine Gruppierung mit Crossfilter durchführen. Dazu können wir die folgende Funktion verwenden:
var grouping = filtering.group().reduceCount();
var first = grouping.top(2);
Daher ist Crossfilter extrem schnell gebaut. Wenn Sie Gruppen neu berechnen möchten, während Filter angewendet werden, wird diese schrittweise berechnet. Querfilterabmessungen sind sehr teuer.
Crossfilter-API
Lassen Sie uns die bemerkenswerten Crossfilter-APIs im Detail durchgehen.
crossfilter([records])- Es wird verwendet, um einen neuen Crossfilter zu erstellen. Wenn der Datensatz angegeben ist, werden gleichzeitig die angegebenen Datensätze hinzugefügt. Datensätze können beliebige Arrays von JavaScript-Objekten oder Grundelementen sein.
crossfilter.add(records) - Fügt die angegebenen Datensätze zum Crossfilter hinzu.
crossfilter.remove() - Entfernt alle Datensätze, die mit den aktuellen Filtern übereinstimmen, aus dem Crossfilter.
crossfilter.size() - Gibt die Anzahl der Datensätze im Crossfilter zurück.
crossfilter.groupAll() - Es ist eine Funktion zum Gruppieren aller Datensätze und zum Reduzieren auf einen einzigen Wert.
crossfilter.dimension(value) - Es wird verwendet, um eine neue Dimension mit der angegebenen Wertzugriffsfunktion zu erstellen.
dimension.filter(value) - Es wird verwendet, um Datensätze nach dem Übereinstimmungswert der Dimension zu filtern und die Dimension zurückzugeben.
dimension.filterRange(range) - Filtert Datensätze für den Wert der Dimension, die größer oder gleich dem Bereich [0] und kleiner als der Bereich [1] sind.
dimension.filterAll() - Löscht alle Filter in dieser Dimension.
dimension.top(k) - Es wird verwendet, um ein neues Array zurückzugeben, das die Top-k-Datensätze gemäß der natürlichen Reihenfolge dieser Dimension enthält.
dimension.bottom(k) - Es wird verwendet, um ein neues Array zurückzugeben, das die unteren k Datensätze gemäß der natürlichen Reihenfolge dieser Dimension enthält.
dimension.dispose() - Es wird verwendet, um die Abmessung vom Kreuzfilter zu entfernen.
Im nächsten Kapitel werden wir kurz auf D3.js eingehen.