Javascript 使用大型数据集时,D3强制布局可视化非常慢?

Javascript 使用大型数据集时,D3强制布局可视化非常慢?,javascript,performance,d3.js,force-layout,Javascript,Performance,D3.js,Force Layout,我正在使用生成由50K个节点组成的图形的力定向布局。对于任何少于5公里的东西,图书馆都能创造奇迹。我直接使用了这个示例,通过更改引用使其加载我的json文件 有没有加快渲染速度的技巧?如果有其他的选择,那也不错。我怀疑你会发现任何一个选项,可以在力导向布局中渲染50K个节点,而不会变慢到爬行-,而且我认为D3没有什么不同 如果可以使用脱机工具,您可以使用基于桌面的工具,它可以处理非常大的图形。您可能希望尝试使用GraphGL在Web上可视化大型网络: 对我来说,通过d3力定向图显示大量数据时,动

我正在使用生成由50K个节点组成的图形的力定向布局。对于任何少于5公里的东西,图书馆都能创造奇迹。我直接使用了这个示例,通过更改引用使其加载我的json文件


有没有加快渲染速度的技巧?如果有其他的选择,那也不错。

我怀疑你会发现任何一个选项,可以在力导向布局中渲染50K个节点,而不会变慢到爬行-,而且我认为D3没有什么不同


如果可以使用脱机工具,您可以使用基于桌面的工具,它可以处理非常大的图形。

您可能希望尝试使用GraphGL在Web上可视化大型网络:

对我来说,通过d3力定向图显示大量数据时,动画速度非常慢


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

< P>对于力布局中超过1K的元素,考虑使用画布代替SVG。它有助于提高渲染性能。请参见此处的示例:


我知道这个问题很老了,但不管怎样。。最适合大数据的是cytoscapejs()。我已经在图形库工作了几年,cytoscape从未让我失望。

目前我正在测试visjs、d3v5和cytoscapejs v3,以获得两种情况下的真正大数据(甚至100k节点和300k边):是否有固定位置。虽然d3在有固定位置和力在模拟中“关闭”时工作正常,但cytoscape在这两种情况下都工作得更好。该库使用图形算法来计算布局,您甚至可以应用自己的算法进行布局。如果你想要有力度的布局,你可以试试springy。


D3使用Barnes–Hut近似,使得每次迭代为O(n lg n)。但是,即使没有模拟,渲染50000个节点(以及多少个链接)也会很慢。这是真的。动画没有多大用处。我还没有做到这一点,但我正在研究一种仅在某些节点展开时才渲染的替代方法—类似于动态节点渲染。