私はかなり長い間、この問題を追跡しようとしてきました。親の半径または子の深さに基づいてエッジの幅を調整しようとしています。理想的には、親/ソースの半径を参照してそれを行いたいと思います。最も有望なオプションは、ストローク幅の関数を作成することです。
.attr("stroke-width", function(d) { return d.r ;});
結果は下の画像で、1 つのエッジに目的のエッジが与えられ、残りは異なっています。提案できる別の方法はありますか?
Lars Kotthoff は次のように提案しましたが、結果は本質的に同じです。
function(d) { return (d.children ? d.children[0].r : d.r)/600; }
別のオプションは d.depth を参照していますが、これは同じ結果を生成します。
幅を d.depth に設定すると、深さに対応しない異常な数値が返されます。最初のエッジは幅 0 を返し、2 番目は 1 を返し、3 番目は 2 を返し、4 番目は再び 2 を返します。韻や理由はないようです。
.attr("stroke-width", function(d) { return d.depth});