我的代码的重点是可视化动态的人际网络。这些数据表示人们进出网络并有联系人。
我已经结合了两个Mike Bostocks算法(强制布局和多个焦点)。
代码工作正常,但添加或删除节点时有一点问题。
似乎有些不对劲,但我无法指出是什么。
当我添加1 2 3然后删除1 2 3时,它删除(在屏幕上)3然后是2然后是1.但是如果我打印出节点它实际上删除了1 2和3。
这是我更新布局的地方:
function update(){
link = svg.selectAll(".link")
.data(force.links());
link.enter().append("line")
.attr("class", "link");
link.exit().remove();
node = svg.selectAll(".node")
.data(force.nodes());
node2 = node.enter().append("g")
.attr("class", "node")
.call(force.drag);
node2.append("path")
.style("fill", "white")//function(d, i) { return fill(d.service ); })
.attr("stroke", function(d) { return d3.rgb(d.state & 1 ? "red" : d.state & 2 ? "orange" : "green") })
.attr("d", d3.svg.symbol()
.size(200)
.type(function(d) { if
(d.staff == 0) { return "circle"; } else if
(d.staff == 1) { return "square";}})
);
node2.append("text")
.attr("fill", "black")
.style("font-size","8px")
.attr("text-anchor","middle")
.text(function(d) { return d.iden });
link.exit().remove();
node.exit().remove();
force.start();
}
这是我的完整项目:http://jsfiddle.net/Thomas99/vfzLnbfo/
欢迎任何帮助
谢谢。