Vis.js:减少多个中心节点的布局噪声(径向力)

Vis.js: Lessen layout noise for multiple central nodes (radial force)

我正在使用 vis.js 显示一些图表。问题是具有多个中心节点的布局会变得嘈杂(中心节点的邻居重叠)。类似于所附图像的布局是可取的。 是否可以使用 vis.js 实现此目的?

看起来有一个选项可以解决您的问题(我在玩过 physicsConfiguration 之后发现了它,就像我之前建议的那样):

物理学有 avoidOverlap 属性(在 01 之间浮动)可以这样使用:

var options = {
  ...
  physics: {
    barnesHut: {
      avoidOverlap: 0.5
    },
    ...
  }
}

如果您在配置演示中尝试它,您会看到 avoidOverlap 等于 0 很可能拖动和移动节点,以便那些重叠的边缘和网络保持在该职位:

但是一旦我们增加这个值,节点开始从边缘反弹并且不能真正停留在那个位置:

但请注意,此选项不会阻止 edge-edge 交叉,只会 edge-node 重叠(参见 physics/barnesHut/avoidOverlap)。物理文档页面根本不包含 "cross" 这个词,每次出现 "overlap" 都是关于 edge-node 的事情。

所以这会减少布局的噪音,但不会消除交叉边缘。