I'm trying to change my visualization script to be more like the Modifying a Force Layout Example. Since I don't have fixed nodes like a, b and c to add I read a json file to fill the nodes and links array.
d3.json("mock.json", function(error, json) {
if (error)
throw error;
nodes = nodes.concat(json.nodes);
links = links.concat(json.links);
start();
});
nodes and links have the right size, meaning nodes contains 26 nodes and links 37 links. Now I want to simply visualize them using line and circle elements.
function start() {
link = link.data(force.links(), function(d) { return d.source.id + "-" + d.target.id; });
link.enter().append("line").attr("class", "link");
link.exit().remove();
node = node.data(force.nodes(), function(d) { return d.id;});
node.enter().append("circle").attr("class", "node").attr("r", 8);
node.exit().remove();
force.start();
}
This is very simular to the example and I don't really understand why this won't work. I provide a demo with the mock. Is there an issue because I use concat() and not push() or is there anything else wrong?