Multi-Serien Balkendiagramm in DC-js

8

Ich benutze DC.js (lib über D3) und habe ein großartiges Beispiel für a Single-Serie Balkendiagramm:

%Vor%

Ich habe mich gefragt, ob es möglich ist, ein mehrdimensionales Balkendiagramm mit dieser Bibliothek zu erstellen. Beispiel: Gruppieren nach Geschäftsname, dann Gruppieren nach Mitarbeiter, dann zeigt die y-Achse den durchschnittlichen Verkaufswert an (der bereits von meinem Backend berechnet wurde).

Die Daten sehen wie folgt aus:

%Vor%     
amcdnl 22.02.2014, 22:36
quelle

4 Antworten

9

Wenn Sie eine statische Anzahl von zu zeichnenden Gruppen haben, können Sie mit einem zusammengesetzten Diagramm den gewünschten Effekt erzielen.

Im Beispiel unten habe ich die Lücke zwischen den Balkendiagrammen fest codiert - ich kann das, weil ich weiß, dass 12 Monate angezeigt werden.

%Vor%

Ich übergebe diese Balkendiagramme an die Kompositionsmethode eines zusammengesetzten Diagramms:

%Vor%

Schließlich füge ich ein Renderlet hinzu, um eines der Diagramme um ein paar Pixel nach rechts zu verschieben:

%Vor%

Ich weiß, dass dies nicht der sauberste Ansatz ist, aber es kann im Notfall funktionieren.

Ich hoffe, das hilft.

    
DJ Martin 24.02.2014, 14:48
quelle
2

Das nächste, wonach Sie fragen, fällt mir sofort in dc.js ein gestapeltes Balkendiagramm ( Beispiel ). Aber ich denke, was Sie bevorzugen könnten, ist ein gruppiertes Balkendiagramm . Ich bin mir nicht sicher, ob dieser Diagrammtyp derzeit von dc.js unterstützt wird. Vielleicht weiß es jemand anderes.

    
Ethan Jewett 22.02.2014 23:21
quelle
1

Ich weiß, dass ich zu spät bin, aber es könnte jemand anderem helfen.

Um ein gruppiertes Balkendiagramm in dc.js zu erstellen, ohne den ursprünglichen DC-Code zu überschreiben, können Sie das Pretransition-Ereignis nutzen und die Balken aufteilen, um eine Gruppe zu erstellen.

Ich habe ein Beispiel (jsfiddle) erstellt

Die Magie passiert hier:

%Vor%

...

%Vor%

Vollständiger Code:

Markup

%Vor%

Js

%Vor%

Es ist nicht perfekt, aber es könnte einen Anfangspunkt geben.

    
Moshe Quantz 05.07.2017 17:49
quelle
0

Ich konnte dies mit einer Drehung der Renderlet-Technik im folgenden Link tun Renderlet-Funktion zum Einfärben

Mein Code geht wie folgt

%Vor%

Hinweis: Ich habe eine Dimension mit zwei Werten für die Serie verwendet.

    
Rajesh Rajamani 29.04.2016 11:16
quelle