2017-05-28 6 views
0

d3jsを使った簡単なツリーの視覚化のためにthis fiddleを作成しました。それはうまく動作します。しかし、ツリーが本当に大きくなると、ノードの横にあるテキストが重なる傾向があります。だから私は何とか垂直距離を設定する必要があります。どうすればこれを達成できますか?以下の画像は、私が何を意味するかを示しています。d3jsツリーレイアウト円の重なりのテキスト間の垂直距離

enter image description here

私はseparation機能でそれを追加しようとしましたが、これは、私は水平方向にのみ、それを変更すると思います。

var tree = d3.layout.tree().nodeSize([1, nodeHeight]) 
     .separation(function(a, b) { 
      var height = a.height + b.width, 
       distance = height/2 + 50; 
       return distance; 
     }), 
nodes = tree.nodes(data), 
links = tree.links(nodes); 
+0

可能な複製https://stackoverflow.com/questions/13032722/d3-tree-vertical-separationは、また、あなたのjsfiddleにエラーが発生し、ツリーのデータの例を提供することができますしてください –

答えて

0

私は兄弟ノードは重複していないが、いとこだと思う。問題を処理するには、tree.separation()がどのように機能するかを確認する必要があります。

私のプロジェクトの一つです。これは私がしました。

var tree = d3.layout.tree(); 
tree.nodeSize(/*some stuff here*/) 
.separation(function(a, b) { 
     return (a.parent == b.parent ? 1 : 1.5); 
    }); 

リターン(a.parent == b.parent 1:?1.5)は、基本的に ノードが同じ親を持つか、兄弟である場合、彼らが持っていない場合は、それらの間の分離はnoneですし、と言っています同じ親であり、彼らはいとこであると考えられているため、それらの間の計算距離はノードの高さの50%(nodeSizeで定義したもの)です。

私は専門家のようなものを説明するのは良くありませんが、間違いなく分離方法をチェックして、いとこのノード間の距離を処理していることに留意してください。

enter image description here