这个问题- Fix Node Position in D3 Force-Directed Layout - 涵盖如何固定节点在力布局中的位置。
我的问题是如何固定节点的一个维度,X 或 Y,并让另一个维度响应布局中的力。
最佳答案
这在 D3 中不直接支持,但您可以通过在 tick
处理程序函数中重置您希望保持不变的坐标来手动执行此操作。
force.on("tick", function() {
nodes.each(function(d) {
d.x = d.px = d.savedX; // similar for y
});
// do other stuff
});
这要求您将所需的值与绑定(bind)到节点的数据一起存储,在示例中的属性 savedX
中(尽管您显然可以使用任何其他名称,只要它不被任何东西使用即可否则)。
关于d3.js - 仅修复力布局中节点的一个维度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32036928/