更新多个圆环图d3.js的大小和值

时间:2018-04-27 09:58:35

标签: javascript d3.js data-visualization donut-chart

我正在使用JS和d3.js 3.x开展项目。

我有一个力量布局,每个节点都被圆环图所包围。

现在我尝试更新数据并调整节点和圆环图表的大小,但是我在arcTween函数中遇到了很大的麻烦。

如果我创建的弧变量不依赖于数据,则arcTween函数会执行它应该执行的操作,但如果我像这样设置外半径和内半径则不会:

    var arc = d3.svg.arc()
    .innerRadius(function(d){
        if(d.data.group==1)
            return radiusScale(d.data.value);
    })
    .outerRadius(function(d){
        if(d.data.group==1)
            return radiusScale(d.data.value)+10;
    })
    .cornerRadius(11);

我尝试了很多解决方案,但都没有。

这里的小提琴有完整的代码: https://jsfiddle.net/56n4fhLg/1/

由于

1 个答案:

答案 0 :(得分:0)

我发现了问题,我忘了为每个路径保存“d”:

    pathPie
    .attr("id", function(d,i) { return "arc_"+d.data.target; })
    .attr("d", function(d, i) {
            var temp = radiusScale(d.data.value);
            arc.innerRadius(temp)(d, i);
            temp += 10;
            return arc.outerRadius(temp)(d, i);
    })
    .each(function(d) {
        this._current = d;
    });

此处代码已更新:https://jsbin.com/yosesotuwo/edit?output