2013-06-24 13 views
8

Tôi sử dụng bố cục lực d3 để tạo biểu đồ, sau đó lưu trữ vị trí của các nút trong cơ sở dữ liệu.Làm thế nào tôi có thể hiển thị biểu đồ bằng cách sử dụng bố cục lực d3 với các vị trí ban đầu được thiết lập và không có chuyển động nào cả?

Lần sau tôi muốn hiển thị biểu đồ, tôi đọc các vị trí từ cơ sở dữ liệu vào các nút và sau đó tôi bắt đầu bố cục lực.

Điều đó khiến bố cục di chuyển nhẹ.

Có cách nào để hiển thị biểu đồ với các vị trí nút được lưu trữ mà không cần gọi hàm force.start() không?

Điều tôi muốn là chế độ "chỉ đọc" để hiển thị biểu đồ ổn định do người khác tạo trước đó.

/Hans

Trả lời

10

Tôi khuyên bạn nên đọc documentation of the force layout. Nó thực sự là tốt.

Như bạn đã đề cập, bạn phải đặt thuộc tính pxpy cho mỗi nút. Sau đó, bạn có thể đặt thuộc tính fixed thành true trong mỗi nút.

Điều này sẽ ngụ ý rằng tính toán force.start() sẽ không có bất kỳ ảnh hưởng nào.


Một điều bạn có thể thử là để thiết lập giá trị alpha để 0, và sau đó bắt đầu mô phỏng:

force.alpha(0) 
    .start() 

Tôi không chắc chắn cho dù phương pháp này hoạt động. Đăng jsFiddle nếu nó không.

+1

Tôi đã đọc tài liệu qua lại, nhưng tôi không đủ thông minh để nhận ra rằng tôi nên sử dụng thuộc tính cố định :-). Nó hoạt động tuyệt vời! Cảm ơn! – hansbrattberg

+0

Đó là điều bình thường không lo lắng. Tôi vui vì nó đã giúp. Bạn có thể chấp nhận câu trả lời nếu nó giải quyết được vấn đề của bạn. –

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