2011-10-11 34 views
16

Tôi đang sử dụng d3.js để tạo bố cục theo hướng lực lượng của biểu đồ của tôi bao gồm các nút 50K. Đối với bất cứ điều gì ít hơn 5K, thư viện hoạt động kỳ diệu. Tôi đang sử dụng ví dụ thẳng ra khỏi d3.js examples page bằng cách thay đổi tham chiếu để nó tải tệp json của tôi.D3 hiển thị bố cục lực chết chậm khi sử dụng tập dữ liệu lớn?

Có mẹo nào để tăng tốc hiển thị không? Nếu có bất kỳ lựa chọn thay thế khác, đó sẽ là tốt quá.

Trả lời

10

Tôi nghi ngờ bạn sẽ tìm thấy bất kỳ tùy chọn nào có thể hiển thị 50K nút trong bố cục theo hướng lực mà không làm chậm quá trình thu thập dữ liệu - most implementations are O(n3) và tôi không nghĩ rằng D3 là khác nhau.

Nếu công cụ ngoại tuyến được chấp nhận, bạn có thể xem Gephi, công cụ dựa trên máy tính để bàn có thể xử lý các biểu đồ rất lớn.

+18

D3 sử dụng xấp xỉ Barnes-Hut, mà làm cho nó O (n lg n) mỗi lần lặp. Nhưng ngay cả khi không có mô phỏng, hiển thị 50.000 nút (và tuy nhiên nhiều liên kết) sẽ chậm. – mbostock

6

Đối với tôi, đó là hình ảnh động đó là rất chậm khi hiển thị nhiều dữ liệu thông qua đồ thị d3 lực đạo.

Khi tôi cần hiển thị nhiều nút/liên kết, kế hoạch của tôi sẽ xóa hình động và có sơ đồ hướng tĩnh. Có lẽ bạn có thể thử điều đó? Có, nó ít thú vị hơn, nhưng một khi bạn có rất nhiều nút, tôi không nghĩ rằng hình ảnh động là hữu ích.

+0

Điều đó đúng. Hoạt hình sẽ không được sử dụng nhiều. Tôi đã không làm điều này được nêu ra nhưng tôi đang làm việc trên một cách tiếp cận thay thế mà sẽ chỉ hiển thị khi các nút nhất định được mở rộng - một cái gì đó như rendering nút động. – Legend

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