Tôi đang sử dụng bố cục cây D3, chẳng hạn như bố cục này: http://mbostock.github.com/d3/talk/20111018/tree.htmlD3 cây dọc tách
Tôi đã sửa đổi nó cho các nhu cầu của mình và đang gặp sự cố. Ví dụ có cùng một vấn đề quá, nếu bạn có quá nhiều nút mở thì chúng trở nên nhỏ gọn và làm cho việc đọc và tương tác trở nên khó khăn. Tôi muốn xác định một không gian dọc tối thiểu giữa các nút trong khi giai đoạn định cỡ lại để cho phép khoảng cách như vậy.
tôi đã cố gắng thay đổi thuật toán tách để làm cho nó làm việc:
.separation(function (a, b) {
return (a.parent == b.parent ? 1 : 2)/a.depth;
})
Đó không làm việc. Tôi cũng đã thử tính toán chiều sâu nào có nhiều con nhất sau đó nói chiều cao của sân khấu là children * spaceBetweenNodes
. Điều đó khiến tôi gần gũi hơn, nhưng vẫn không chính xác.
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);
Tôi cũng đã cố gắng để thay đổi giá trị của nút x
quá trong phương pháp dưới đây, nơi nó tính toán tách y
, nhưng không có điếu xì gà. Tôi cũng sẽ đăng thay đổi đó nhưng tôi đã xóa nó khỏi mã của mình.
nodes.forEach(function(d, i) {
d.y = d.depth * 180;
});
Nếu bạn có thể đề xuất một cách hoặc biết cách tôi có thể thực hiện khoảng cách tối thiểu theo chiều dọc giữa các nút, hãy đăng. Tôi sẽ rất biết ơn. Tôi có thể thiếu một cái gì đó rất đơn giản.
Cảm ơn bạn, Kind Sir !! :) –