我想创建一个力导向图,但每次生成时都需要保持相同(使用相同的数据)。 是否有使用d3.js实现此目的的方法?更新: 我找到了可行的解决方案,它基于使用种子随机数生成器。// set the random seed Math.seedrandom('mySeed');
你可以通过修改D3的力导向布局或创建基于它的自己的布局来实现。在节点定位中至少有三个地方使用了随机性(Math.Random),(鉴于力导向布局引用其他代码,可能还有更多)。为了使图形每次都以相同的方式显示,你必须消除所有随机性: https://github.com/mbostock/d3/blob/master/src/layout/force.js 然而,这将妨碍布局的工作方式——它使用随机性来快速将自己整理成可读的图表。如果您的节点数量很少,那么可能不是问题,但是大量的节点可能会变成一团乱麻。
console.log()
提取结果位置,并将这些位置保存到要加载的数据文件中。有关更多信息和示例链接,请查看 此答案。 - meetamit