我正在使用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