我有一个包含大约600个节点的图表。过了一会儿,d3.layout.force()收敛了。如何显示节点的(x,y)坐标,以便我可以将它们存储为数据并将其用作this answer中所述的缓存布局?答案可能很简单,因为我是javascript的新手。
答案 0 :(得分:3)
在力布局收敛后,您可以迭代节点列表以获取当前坐标:
var force = d3.layout.force().nodes(nodes);
// after convergence
var positions = nodes.map(function(d) { return [d.x, d.y]; });
这假定您的浏览器支持map
,如果没有,请参阅here。
您当然可以在每个刻度处运行此操作并每次保存结果;这可以节省您确定布局何时收敛的效果。