我想创建一个力导向图,但我需要它在每次生成时都保持不变(使用相同的数据)。 有没有办法用d3.js做到这一点?
更新:
我找到working solution,它基于使用seeded random number generator
// set the random seed
Math.seedrandom('mySeed');
答案 0 :(得分:2)
您可以修改D3的力布局,或者根据它来创建自己的布局。在节点的定位中至少有3个地方使用随机性(Math.Random)(假设力布局引用其他代码,可能会有更多)。您必须消除所有随机性,以便每次都以相同的方式显示图形:
https://github.com/mbostock/d3/blob/master/src/layout/force.js
但是,这会妨碍布局的工作原理 - 它使用随机性将自己快速排序成清晰易读的图表。如果您的节点数量很少,那么它可能不会成为问题,但是大量节点可能最终会出现问题。