Ich versuche, einige d3-Code von v3 auf Version 4 zu aktualisieren. Ich habe ein Baumdiagramm mit JSON-Daten. Die d3.v4-Beispiele zeigen, wie tabellarische Daten (z. B. flare.csv) in hierarchische Daten mithilfe von stratify() https://bl.ocks.org/mbostock/9d0899acb5d3b8d839d9d613a9e1fe04 konvertiert werden. Aber meine Daten sind JSON, also will oder brauche ich stratify() nicht. Ich bekomme diese Fehlermeldung:Wie erstelle ich ein Baum-Layout mit JSON-Daten in d3.v4 - ohne stratify()
undefined is not a function (evaluating 'root.eachBefore')
diesen Code ausgeführt wird:
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 Baum Layout in d3.v4 zu erstellen, ohne stratify , dh mit Daten, die bereits hierarchisch sind? Kennt jemand ein Beispiel oder kann ich das Problem in meinem Code erkennen? danke
Die Aufgabe wird durch d3.hierarchy() zurück enthält nicht die "name" und "id" Eigenschaften mehr. – jackOfAll