2016-06-05 7 views
1

I Daten im Format dc.js: Balkendiagramm auf Teilmenge von Daten

[ 
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 }, 
{ "date": dt1, "action": "C1", "isRequest": "R", "delay": 10 }, 
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 }, 
{ "date": dt1, "action": "C2", "isRequest": "R", "delay": 20 }, 
{ "date": dt1, "action": "T", "isRequest": "", "delay": 0 }, 
... ] 

Hauptbalkendiagramm ist etwa Zählungen (1 Zeile in der Matrix), die alle Verzögerungen Diagramm ist über Verzögerungsverteilung (Attribut delay) haben Filtern nach Datum Hauptdiagramm, ändert Daten auf allen Verzögerungen Diagramm.
So weit, so gut.
Nun möchte ich ein anderes Diagramm, das mit Teilmenge der Daten in allen Verzögerungen Diagramm funktioniert, unter Berücksichtigung Filter für Attribut "Aktion": "C1". Ich könnte Originaldaten filtern und crossfilter(filteredData) aufrufen, aber als Filterung auf Hauptdiagramm würde nicht auf Daten in diesem Diagramm widerspiegeln. Ich habe versucht, Inspiration erhalten von Crossfilter dimension and group to filter out data below certain threshold

Beispiel ist auf
http://jsfiddle.net/iracic/dtyeL7g7/5/

Danke

Antwort

1

Sie wollen würde, einen Filter in einer benutzerdefinierten Gruppe zu implementieren, so dass die Gruppe Datensätze aggregiert, die Ihren Kriterien entsprechen . Sie können eine Helfer-Bibliothek wie Reductio, dies zu tun und Ihre Gruppe so etwas wie bauen würden:

var dim = ndx.dimension(...); 
var group = reductio().count(true) 
    .filter(function(d) { return d.action === "C1"; })(dim.group()); 

Beispiel in der Dokumentation hier: https://github.com/crossfilter/reductio#aggregations-standard-aggregations-reductio-b-filter-b-i-filterfn-i-

Es ist auch möglich, dies zu tun direkt mit benutzerdefinierten Gruppen, aber es ist ein bisschen komplex.

Nicht verwandt: group.reduceCount nimmt keinen Parameter, also machen die Funktionen, die Sie in Ihrem Beispiel übergeben, nichts.

+0

Ich endete mit der Verwendung von gefälschten Gruppe + Schlüssel Accessor + Verwendung von verketteten Schlüssel. Zögern Sie nicht, performance vs reductio zu kommentieren. Beispiel basiert auf Ihrem Beispiel, wenn mein Gedächtnis gut ist ... :-) http://jsfiddle.net/iracic/dtye7g7/7 BTW, wissen Sie, warum UI-Auswahl nicht ausgerichtet ist, wenn Sie Diagramm verwenden. centerBar (wahr)? – igr

+0

Ah, ja, in diesem Szenario wird der Ansatz der falschen Gruppe funktionieren. Es funktioniert nicht gut, wenn Sie komplexere Kriterien haben, bei denen Sie Gruppen kombinieren müssen. Die Leistung des Reductio-Ansatzes sollte ein wenig besser sein, da Sie die Gruppen nicht jedes Mal neu filtern müssen, wenn Sie eine Aktualisierung des Diagramms rendern möchten, aber in diesem Fall ist das kein großer Unterschied. –

+0

Ok, danke. Ich werde die Frage "zur Zeit" schließen :-) – igr

Verwandte Themen