我正在使用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/
由于
答案 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;
});