Javascript 更改数据后重新启动d3模拟

Javascript 更改数据后重新启动d3模拟,javascript,d3.js,Javascript,D3.js,我的d3力模拟不起作用,因为我认为模拟没有连接到正确的节点。以下是根据用户操作更新节点上数据的代码: var circles = nodes.selectAll("g") .selectAll("circle") .transition() .attr("r", function(d){ newRadius = datapoints.filter(function(data){ ret

我的d3力模拟不起作用,因为我认为模拟没有连接到正确的节点。以下是根据用户操作更新节点上数据的代码:

    var circles = nodes.selectAll("g")
        .selectAll("circle")
        .transition()
        .attr("r", function(d){
            newRadius = datapoints.filter(function(data){
                return data.key==d.key;
            })[0].value;
            d.value = newRadius;
            return scaleRadius(newRadius);
        })
这里的想法是,我用正确的
键的新值(半径)更新每个节点的数据
现在,由于我已将新值附加到这些节点的数据,我需要通过以下方式将模拟附加到这些节点:

    simulation.nodes(<array of data>)
        .on("tick",ticked)
以下是HTML的外观:

但是
bindData
没有正确的值。它只有一个DOM的值,尽管
circlegroup
似乎有两个元素(在_组中) 下面的第一行是
circlegroup
,第二行是
bindData
的输出

如何获取附加到这些节点的数据,以便更新模拟对象

提前谢谢


你找到解决办法了吗?时间太长了,所以我忘记了具体步骤,但我解决了。我相信我再次将正确的节点绑定到模拟,然后运行模拟。好的,我将尝试一下,谢谢
    var circleGroups = nodes.selectAll(".circlegroup")
    var bindData = circleGroups.datum();