使用大型数据集时,D3力布局可视化会变慢吗?

时间:2011-10-11 18:36:38

标签: javascript performance d3.js force-layout

我使用d3.js生成由50K节点组成的图形的力导向布局。对于任何低于5K的东西,图书馆都可以创造奇迹。我通过更改引用来直接使用d3.js examples page的示例,以便加载我的json文件。

有加速渲染的提示吗?如果还有其他选择,那也很好。

5 个答案:

答案 0 :(得分:12)

我怀疑你会发现任何可以在强制导向布局中渲染50K节点而不减速爬行的选项 - most implementations are O(n3),我不认为D3有任何不同。

如果可以接受离线工具,您可以查看Gephi,这是一款可以处理超大图表的基于桌面的工具。

答案 1 :(得分:6)

对我来说,当通过d3力导向图显示大量数据时,动画非常慢。

当我需要显示大量节点/链接时,我的计划是删除动画并使用静态力导向图。也许你可以尝试一下?是的,它不那么有趣,但是一旦你有很多节点,我认为动画没有用。

答案 2 :(得分:4)

您可能想尝试使用GraphGL在Web上可视化大型网络: https://gephi.org/2011/gsoc-mid-term-graphgl-network-visualization-with-webgl/

答案 3 :(得分:2)

对于强制布局中的1k多个元素,请考虑使用canvas而不是svg。它可以帮助渲染性能。见这里的例子:

https://vida.io/documents/Ye5eGKJrfn3xBmnS3

答案 4 :(得分:0)

我知道问题很老,但是无论如何..对于大数据最好的是cytoscapejs(http://js.cytoscape.org/)。我已经使用图形库已有两年了,cytoscape从未让我失望。

目前,我正在测试 visjs,d3v5和cytoscapejs v3 ,用于两种情况下的真正大数据(甚至10万个节点和30万个边缘):我是否有固定的职位。尽管在固定位置和在模拟中“关闭”力时d3的运行情况还不错,但是在两种情况下cytoscape的运行情况都好得多。该库使用图形算法来计算布局,您甚至可以将自己的算法应用于布局。如果您想用力布置,则可以尝试弹性设计。

http://js.cytoscape.org/#layouts