Wie erstelle ich ein Baumlayout mit JSON-Daten in d3.v4 - ohne stratify ()

Ich versuche, einen Teil des d3-Codes von v3 auf Version 4 zu aktualisieren. Ich habe ein Baumdiagramm mit JSON-Daten. Die d3.v4-Beispiele zeigen, wie Tabellendaten (z. B. flare.csv) mit stratify () @ in hierarchische Daten konvertiert werdehttps: //bl.ocks.org/mbostock/9d0899acb5d3b8d839d9d613a9e1fe0. Meine Daten sind jedoch JSON, sodass ich stratify () nicht möchte oder brauche. Ich bekomme diesen Fehler:

undefined ist keine Funktion (Auswertung von 'root.eachBefore')

diesen Code ausführen:

var height = 200;
var width = 500;

var xNudge = 50;
var yNudge = 20;

var tree = d3.tree()
    .size([height, width]);

var svg = d3.select("body").append("svg").attr("width","100%").attr("height","100%");
var chartGroup = svg.append("g").attr("transform","translate(50,200) rotate(-90)");

d3.json("treeData.json", function(treeData) {


    var root = treeData[0];
    tree(root);
    console.log('hello');//doesn't log to console, i.e. error occurs beforehand
}

treeData.json:

[
  {
  "name": "Top Level",
  "parent": "null",
  "children": [
    {
      "name": "Level 2: A",
      "parent": "Top Level",
      "children": [
        {
          "name": "Son of A",
          "parent": "Level 2: A"
        },
        {
          "name": "Daughter of A",
          "parent": "Level 2: A"
        }
      ]
    },
    {
      "name": "Level 2: B",
      "parent": "Top Level"
    }
  ]
}
]

Ist es tatsächlich möglich, ein Baumlayout in d3.v4 zu erstellen, ohne Schichten zu verwenden, d. H. Daten zu verwenden, die bereits hierarchisch sind? Kennt jemand ein Beispiel oder kann das Problem in meinem Code erkennen? Vielen Dan

Antworten auf die Frage(4)

Ihre Antwort auf die Frage