d3 Verschachtelung auf mehrere Tasten, die mit einer Schleife

Ich bin mit d3.nest (), um eine hierarchische Objekt aus einer CSV-Datei.

Könnten Sie mir bitte helfen zu verstehen, warum der folgende code nicht funktioniert.
Ich schaffte es nicht die Verwendung der nesting-Funktion innerhalb einer Schleife, wie unten beschrieben.

Habe ich folgende CSV-Datei, übernommen aus den Beispielen auf der d3 website:

"type1","type2","type3","type4","type5","size"
"flare","analytics","cluster","AgglomerativeCluster","","3938"
"flare","analytics","cluster","CommunityStructure","","3812"
"flare","analytics","cluster","MergeEdge","","743"
"flare","analytics","graph","BetweennessCentrality","","3534"
"flare","analytics","graph","LinkDistance","","5731"

Diese grundlegenden Verschachtelung funktioniert:

data = data.entries(csv)
        .key(function(d) {return d.type1; })
        .key(function(d) {return d.type2; })
        .key(function(d) {return d.type3; })
        .entries(csv);

Ich will ein array von Werten angeben, mein Schlüssel, um Sie zu ändern dynamisch.

Dies funktioniert:

    var data = d3.nest();
    var nesting = ["type1","type2","type3"];
    data = data.key(function(d) {return d[nesting[0]]; });
    data = data.key(function(d) {return d[nesting[1]]; });
    data = data.key(function(d) {return d[nesting[2]]; });
    data = data.entries(csv);

Aber es funktioniert nicht mit einer Schleife...

    var data = d3.nest();
    for(var i=0;i<nesting.length;i++)
    {
        data = data.key(function(d) {return d[nesting[i]]; });
    }
    data = data.entries(csv);

Ich kann nicht verstehen, warum die Schleife version nicht funktioniert... Vielleicht vermisse ich etwas über die d3.nest () - Funktionen...

Außerdem würde ich gerne wissen, ob es einen Weg gibt, um "überspringen" einen nesting-level, wenn es nichts gefüllt auf dieser Ebene (dh: "Typ 5" - Ebene auf alle Zeilen aus dem Auszug oben). Wie könnte ich das tun?

Vielen Dank für das Lesen!

InformationsquelleAutor bobby | 2012-09-13
Schreibe einen Kommentar