我正在使用d3.js來生成由50K節點組成的圖形的強制定向佈局。對於小於5K的任何事物,圖書館都可以創造奇蹟。我正在使用直接關閉d3.js examples page的示例,方法是更改引用以加載我的json文件。使用大型數據集時,D3強制佈局可視化效果會變得很慢?
是否有任何提示,以加快渲染?如果還有其他的選擇,那也不錯。
我正在使用d3.js來生成由50K節點組成的圖形的強制定向佈局。對於小於5K的任何事物,圖書館都可以創造奇蹟。我正在使用直接關閉d3.js examples page的示例,方法是更改引用以加載我的json文件。使用大型數據集時,D3強制佈局可視化效果會變得很慢?
是否有任何提示,以加快渲染?如果還有其他的選擇,那也不錯。
我懷疑你會發現任何選項都可以在強制導向的佈局中渲染5萬個節點,而不會減慢抓取速度,我不認爲D3有什麼不同。
如果離線工具是可以接受的,你可以看看Gephi,基於桌面的工具,可以處理大量的圖形。
你可能想嘗試GraphGL在Web上可視化大型網絡: https://gephi.org/2011/gsoc-mid-term-graphgl-network-visualization-with-webgl/
對於我來說,這是動畫通過D3力向圖中顯示大量數據的時候,這是非常緩慢的。
當我需要顯示大量的節點/鏈接,我的計劃將是去除動畫,並有靜力引導圖。也許你可以嘗試嗎?是的,這不太有趣,但是一旦你有很多節點,我認爲動畫不是那麼有用。
這是真的。動畫不會有太大用處。我還沒有做到這一點,但我正在研究一種替代方法,只在某些節點展開時纔會呈現 - 就像動態節點呈現一樣。 – Legend
對於力佈局1K多的元素,可以考慮用帆布代替SVG的。它可以幫助渲染性能。在這裏看到例如:
D3使用巴恩斯小屋近似,其每次迭代使得它爲O(n LG n)中。但即使沒有模擬,渲染50,000個節點(無論多少鏈接)都會變得很慢。 – mbostock