2016-04-08 15 views
-1

nasıl yapılacağını en az 12 düzeyli bir ikili ağaç oluşturmaya çalışıyorum. 12. seviye durumunda 2^12 düğüm ayarlamak zorundayım, bu oldukça yüksek ve yatay kaydırma çubuğu ekledim. Yani, son düzeyinde tüm düğümler bu resimde görüldüğü gibi, uzay ve yatay kaydırma kurtarmak için birbirlerine sopa istiyorum:Ağaç düğümleri, birbiriyle örtüşmeden birbirlerine (veya minimum sabit boşluk) d3

enter image description here

Ben svg genişliği her zaman uyum sağlamak istemiyoruz onları sığdırmak için sıkın. Son düzeyde düğümler arasındaki ayrımı azaltmak ve svg veya konteyner genişliği arttığında bile düğüm ayırma aynı tutmak için uygun bir yol istiyorum. Şimdiye kadar çevrimiçi olarak herhangi bir çözüm bulunamadı.

Lütfen bunu başarmanın bir yolunu önerin.

cevap

0

Sen düğüm derinlik özniteliği, yani ile yapabilirsiniz:

nodes.forEach(function(d) { d.y = d.depth * 180; }); 

aralarındaki boşluğu güncelleyebilirsiniz ağacın her seviye için. Bu örnekte bir göz atın, size bir fikir vermek amacıyla

: http://plnkr.co/edit/bDBe0xGX1mCLzqYGOqOS?p=preview

+0

ekli resimde görebileceğiniz gibi (http://i.stack.imgur.com/ApsNP.jpg), gözlerimi Ağaç grafiği soldan sağa doğru baştan aşağı başlıyor. Dikey kaydırmayı ayarlamak için önerinizi zaten kullandım ve iyi çalışıyor. Sorun yatay kaydırma ile. Lütfen resme bakın ve bir şey önermek :) –

+0

Ben plunk güncelledim ve noktanızı görüyorum. Birisi daha fazla almak istediği takdirde pusulayı bırakıyorum.http: //plnkr.co/edit/1HGUXyl7o2kc3FuTWit7? P = önizleme – echonax

+0

Düğümler, çocuk düğümlerini açmaya çalışırken üst üste geliyor. Tüm düğümleri genişletmeye çalışıyorlar ve üst üste geldiklerini görüyoruz :( –