在收敛的D3力布局中记录节点的x,y坐标

时间:2013-05-06 15:34:07

标签: d3.js force-layout

我有一个包含大约600个节点的图表。过了一会儿,d3.layout.force()收敛了。如何显示节点的(x,y)坐标,以便我可以将它们存储为数据并将其用作this answer中所述的缓存布局?答案可能很简单,因为我是javascript的新手。

1 个答案:

答案 0 :(得分:3)

在力布局收敛后,您可以迭代节点列表以获取当前坐标:

var force = d3.layout.force().nodes(nodes);

// after convergence
var positions = nodes.map(function(d) { return [d.x, d.y]; });

这假定您的浏览器支持map,如果没有,请参阅here

您当然可以在每个刻度处运行此操作并每次保存结果;这可以节省您确定布局何时收敛的效果。