D3.js 如何在d3中更新圆环图的内半径和外半径?

D3.js 如何在d3中更新圆环图的内半径和外半径?,d3.js,donut-chart,D3.js,Donut Chart,我试图通过使用滑块来更改圆环图的内半径和外半径 以下是JSFIDLE链接: 总是给我错误:属性d的值无效=“……” T^T在移动滑块后定义newarc时,需要包括startAngle和endAngle属性,方法与第一次定义arc时相同 这就是您需要做的全部工作: var newarc = d3.svg.arc() .innerRadius(innerRadius - (30 * value)) .outerRadius(outerRadius) .startA

我试图通过使用滑块来更改圆环图的内半径和外半径

以下是JSFIDLE链接:

总是给我错误:属性d的值无效=“……”


T^T

在移动滑块后定义
newarc
时,需要包括
startAngle
endAngle
属性,方法与第一次定义
arc
时相同

这就是您需要做的全部工作:

var newarc = d3.svg.arc()
      .innerRadius(innerRadius - (30 * value))
      .outerRadius(outerRadius)
      .startAngle(function(d, i) {
          return radians * i
      })
      .endAngle(function(d, i) {
          return radians * (i + 1)
      });

  d3.selectAll(".seg").attr("d", newarc);
请注意,为了更清楚地了解滑块移动时发生的情况,我将
innerRadius
值设置为取决于滑块的


在这里看到一把正在工作的小提琴:

你能把你的完整代码放在小提琴上吗?用这个小纸条是不可能分辨出错误的。哦,好的,当然!谢谢
var newarc = d3.svg.arc()
                .innerRadius(innerRadius-30)
                .outerRadius(outerRadius-30);
    d3.selectAll(".seg").attr("d",newarc)
var newarc = d3.svg.arc()
      .innerRadius(innerRadius - (30 * value))
      .outerRadius(outerRadius)
      .startAngle(function(d, i) {
          return radians * i
      })
      .endAngle(function(d, i) {
          return radians * (i + 1)
      });

  d3.selectAll(".seg").attr("d", newarc);