也许这是一个愚蠢的问题,但我是 d3 新手。我正在尝试根据源链接权重更改力布局中圆的半径。为什么 d.source.weight 可以在 tick 函数中访问,但不能在其他任何地方访问?
例如
force.on("tick", function() {
link.attr("x1", function(d) {console.log(d.source.name + " " + d.source.weight; return d.source.x; })
.attr("y1", function(d) { return d.source.y; })
.attr("x2", function(d) { return d.target.x; })
.attr("y2", function(d) { return d.target.y; });
将正确的值返回到控制台,但是为什么在附加圆圈时无法访问这些属性?
node.append("circle")
.attr("class", "node")
.attr("r", function(d) {return d.source.weight * 2;}); // breaks
我觉得这更像是一个基本的 javascript 问题而不是 d3 问题,但我找不到太多帮助。任何帮助表示赞赏。