仅修复力布局中节点的一个维度?
Fix only one dimension of a node in force layout?
这个问题 - 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
});
这要求您将所需的值与绑定到节点的数据一起存储,在示例中的属性 savedX
中(尽管您显然可以使用任何其他名称,只要它不被其他任何东西使用) ).
这个问题 - 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
});
这要求您将所需的值与绑定到节点的数据一起存储,在示例中的属性 savedX
中(尽管您显然可以使用任何其他名称,只要它不被其他任何东西使用) ).