私は、この一つとして、D3ツリーのレイアウトを使用しています:http://mbostock.github.com/d3/talk/20111018/tree.htmlD3ツリー垂直分離
私は私のニーズのためにそれを修正していると問題に実行しています。この例でも、ノードが多すぎるとコンパクトになり、読み込みと対話が難しくなるという同じ問題があります。私はそのような間隔を許すためにステージをサイズ変更しながら、ノード間に最小の垂直スペースを定義したいと思っています。
私はそれを動作させるために分離アルゴリズムを変更しようとした:
動作しませんでした.separation(function (a, b) {
return (a.parent == b.parent ? 1 : 2)/a.depth;
})
。また、どの奥行きが最も子供が多いかを計算して、舞台の高さをchildren * spaceBetweenNodes
と教えてみました。それは私を近づけましたが、それでもなお正確ではありませんでした。
depthCounts = [];
nodes.forEach(function(d, i) {
d.y = d.depth * 180;
if(!depthCounts[d.depth])
depthCounts[d.depth] = 0;
if(d.children)
{
depthCounts[d.depth] += d.children.length;
}
});
tree_resize(largest_depth(depthCounts) * spaceBetweenNodes);
私もそれがy
分離、ない葉巻を計算ところ、以下の方法では、あまりにも、ノードのx
値を変更しようとしました。私もその変更を投稿しますが、私はコードから削除しました。
nodes.forEach(function(d, i) {
d.y = d.depth * 180;
});
ノード間に垂直方向の最小間隔を達成する方法を教えてください。私は非常に感謝します。私はおそらく非常に単純な何かを見逃している。
ありがとう、親切なサー! :) –