很长一段时间以来,我一直在努力解决这个问题。我正在尝试根据父项的半径或子项的深度来调整边缘的宽度。理想情况下,我想通过引用父/源半径来做到这一点。最有希望的选择是为笔划宽度创建一个函数:
.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});