2012-03-15 23 views
6

Tôi đang cố sắp xếp các nút của mình dưới dạng một cái cây. Hiện tại, tôi đang làm việc với ví dụ này từ here. Hiện tại, tôi đang dựa vào bố cục lực lượng nhưng cố gắng sửa đổi nó để tôi có thể có được một cây với số lượng được xác định trước, tức là nếu một nút thuộc về một "Lớp" cụ thể, nó phải thuộc cùng một khu vực với các nút khác trong lớp.Làm thế nào tôi có thể xây dựng một cây bằng cách sử dụng d3 và bố trí lực của nó?

Tôi đã cố gắng giải thích thêm trong hình bên dưới nhưng có ai có bất kỳ đề xuất nào về điều này không? Có bất kỳ thuật toán được xác định trước nào bên trong d3 thực hiện điều này hoặc có thể được tinh chỉnh để đạt được điều này không?

enter image description here

+0

Nguồn chứa ví dụ về cây động. Bạn nên có một cái nhìn vào nó, nó có thể là những gì bạn muốn (ít nhất là nó trông tương tự). * chỉnh sửa: * Ý tôi là [ví dụ này] (https://github.com/mbostock/d3/blob/master/examples/tree/tree-dynamic.html). –

+1

Có lý do nào bạn đang sử dụng bố cục theo hướng lực tại đây thay vì bố cục cây tĩnh không, ví dụ: http://bl.ocks.org/1061834? – nrabinowitz

+0

@nrabinowitz: +1 Cảm ơn bạn. Không thể tin rằng tôi đã bỏ lỡ nó! Tôi đoán cả hai sẽ phục vụ mục đích của tôi! Có cách nào tôi có thể làm cho họ tương tác để các nút chỉ trở lại khi tôi kéo chúng ở đâu đó? Điều này giúp kéo một số nút và giải thích nó cho ai đó. – Legend

Trả lời

10

sơ đồ của bạn trông gần giống với this example trong đó sử dụng một lực lượng tùy chỉnh hấp dẫn dựa trên chiều sâu. Có another example sử dụng lực tùy chỉnh thu hút nút cha. Đây là cả hai từ my talk trên bố trí lực lượng.

Tất nhiên, bố cục lực chỉ là một tùy chọn — và như @nrabinowitz cho biết có nhiều hơn hierarchy layouts. Bạn có thể tìm thấy moreinteractivehierarchyexamples trong cuộc trò chuyện mở SVG của tôi.

+1

Bạn thực sự là một huyền thoại! Cảm ơn bạn rất nhiều vì đã dành thời gian cho tôi xem tất cả các ví dụ. Và bằng cách này, nói chuyện rất nhiều thông tin. – Legend

Các vấn đề liên quan