D3.js 在力图布局中将节点分为两组(左侧和右侧)
我有一些数据,我正试图以一种特定的方式绘制: 所有节点都有一种方法来识别它所属的组,比如位置:L或位置:R 我想考虑一下这个属性,所有的“l”(左)节点都在中心节点的左侧,所有的“R”(右)节点都在静态中心节点的右侧(类似于图中所画的) 我以前用过这个:D3.js 在力图布局中将节点分为两组(左侧和右侧),d3.js,force-layout,D3.js,Force Layout,我有一些数据,我正试图以一种特定的方式绘制: 所有节点都有一种方法来识别它所属的组,比如位置:L或位置:R 我想考虑一下这个属性,所有的“l”(左)节点都在中心节点的左侧,所有的“R”(右)节点都在静态中心节点的右侧(类似于图中所画的) 我以前用过这个: tick = function () { nodes.forEach(function (n) { if (n.position == "L") { n.x -= force.alpha() *
tick = function () {
nodes.forEach(function (n) {
if (n.position == "L") {
n.x -= force.alpha() * 80;
}
if (n.position == "R") {
n.x += force.alpha() * 80;
}
});
。。。。
};
这种解决方案对于小型集合来说是可行的,但当节点达到一定数量时,比如1000+时,它就变得非常昂贵。
我看了这两个例子:
我在想也许我能解决这个问题,把页面上的两个力结合起来,试着把(静态的)中心节点拆开,把不同的节点拉到一边
欢迎任何建议,谢谢。您可能需要一个。@Larskothoff谢谢您的评论,但不幸的是,这与我以前使用的逻辑相同,无法解决1000+节点的性能问题