使用许多节点和链接加速d3强制布局

时间:2013-08-19 10:40:46

标签: javascript graph d3.js force-layout

我想生成一个可视化,其中包含大量具有d3强制布局的节点(超过500个节点)。虽然它可以正常运行多达200个节点,但是在大约500个节点上变得非常慢,从某种意义上说,布局会从一个帧到另一个帧发生故障,而节点上的鼠标悬停等事件远没有响应。这让我问了几个问题。

  • 节点数量是否存在某种限制,之后不建议使用强制布局?如果是的话,还有其他可以处理这项工作的图书馆吗?

  • 如果我想用d3加速这个过程,应该优化哪些部分?我试着保持使用最小的css / attributes标记(只给节点的半径和填充颜色+链接的笔画宽度和笔画颜色)并减少交互的使用(鼠标悬停事件)但是可以进行更多的优化持有所有信息的力量对象?数据的大小必须起到一定的作用......

感谢您的投入!

1 个答案:

答案 0 :(得分:2)

这样做的一种方法是处理不是每个tick事件,而只处理其中的一小部分,例如跳过指定的数字或根据其他考虑动态调整事件的数量。

如果想要平滑移动,请在处理的tick事件中设置的位置之间添加转换。您当然也可以结合这些想法,并在转换运行时跳过事件,在完成转换后处理第一个。