dieses wiederverwendbare Diagramm als Basis verwenden: http://bl.ocks.org/nnattawat/9368297ändern Farbbereich in einem d3 wieder verwendbaren Ringdiagramm auf der Anzahl der Datenpunkte in Abhängigkeit
ich einen Weg zu finden, ich versuche, den Farbbereich Satz auf die Anzahl der Basis zu ändern Bögen (Größe), ohne den Haupt Donut() neu schreiben zu müssen.
Zum Beispiel, ein Donuts getData Größe wäre 2 (mit den Farben grün und grau), und eine andere Donuts getData Größe wäre 3 (jetzt entfernen grau und ändern Sie die Farben zu grün, rot und gelb).
Ich kann die Farben nicht von donut() entfernen, es scheint, also habe ich versucht, einen Weg zu finden, vielleicht Farben bestimmten Datenpunkten zuzuordnen, aber ich kann das mit dieser Vorlage nicht herausfinden.
Bearbeiten: Angeben von bereits vorgenommenen Codeänderungen.
Ich habe 6 verschiedene getData Funktionen, etwa wie folgt:
var getFirstDonutData = function() {
var size = 2;
var data = [firstData1, firstData2];
var text = "";
d3.select("#data");
return data;
};
var getSecondDonutData = function() {
var size = 3;
var data = [secondData1, secondData2, secondData3];
var text = "";
d3.select("#data");
return data;
};
var getThirdDonutData = function() {
var size = 2;
var data = [thirdData1, thirdData2];
var text = "";
d3.select("#data");
return data;
};
Dann 6 verschiedene der folgenden:
var twoPointDonut = donut()
.$el(d3.select("#twoPointDonut "))
.data(getFirstDonutData())
.render();
var threePointDonut = donut()
.$el(d3.select("#threePointDonut "))
.data(getSecondDonutData())
.render();
var otherTwoPointDonut = donut()
.$el(d3.select("#otherTwoPointDonut "))
.data(getThirdDonutData())
.render();
Danke, das Sinn macht. Ich habe jedoch einige andere Bedenken und habe die Frage aktualisiert. Ziemlich viel, ich schuf separate getData(), um einzelne Donuts unterzubringen, da die Daten von spezifischen Variablen kommen. Da der Hauptdonut() "getData" speziell verwendet, wäre ich nicht in der Lage, Multiples so zu erstellen, wie ich gerade bin. Ich habe versucht, die Daten als ein anderes Array zu übergeben, aber dann konnte der Donut es nicht rechtzeitig sehen und ich konnte es nicht laden. –
Ich verstehe. Ich habe meiner Antwort ein Update hinzugefügt. – Travis
Das war es! Vielen Dank. Es tut uns leid, wenn dies ein bisschen außerhalb des Umfangs ist, aber wissen Sie, ob es irgendwelche Nachteile hat, diese Informationen in der Renderfunktion zu haben? –