Javascript 基于深度或父半径的自定义链接宽度

Javascript 基于深度或父半径的自定义链接宽度,javascript,svg,d3.js,Javascript,Svg,D3.js,我一直在努力解决这个问题已经有一段时间了。我试图根据父对象的半径或子对象的深度调整边的宽度。理想情况下,我希望通过引用父/源半径来执行此操作。最有希望的选择是为笔划宽度创建一个函数: .attr("stroke-width", function(d) { return d.r ;}); 结果是下面的图像,其中一条边被赋予了所需的边,其余的则不同。还有其他方法可以推荐吗 Lars Kotthoff提出了以下建议,但结果基本相同: function(d) { return (d.childre

我一直在努力解决这个问题已经有一段时间了。我试图根据父对象的半径或子对象的深度调整边的宽度。理想情况下,我希望通过引用父/源半径来执行此操作。最有希望的选择是为笔划宽度创建一个函数:

.attr("stroke-width",  function(d) { return d.r ;}); 
结果是下面的图像,其中一条边被赋予了所需的边,其余的则不同。还有其他方法可以推荐吗

Lars Kotthoff提出了以下建议,但结果基本相同:

function(d) { return (d.children ? d.children[0].r : d.r)/600; }
另一个选项是引用d.depth,但这会产生相同的结果

当我将宽度设置为d.depth时,会返回与深度不对应的异常数字。第一条边返回宽度0,第二条边返回1,第三条边返回2,第四条边再次返回2。似乎没有韵律或理由

    .attr("stroke-width", function(d) { return d.depth});

你能发布一个JSFIDLE吗?