Vis.js:减少多个中心节点的布局噪声(径向力)
Vis.js: Lessen layout noise for multiple central nodes (radial force)
我正在使用 vis.js 显示一些图表。问题是具有多个中心节点的布局会变得嘈杂(中心节点的邻居重叠)。类似于所附图像的布局是可取的。
是否可以使用 vis.js 实现此目的?
看起来有一个选项可以解决您的问题(我在玩过 physicsConfiguration 之后发现了它,就像我之前建议的那样):
物理学有 avoidOverlap
属性(在 0
和 1
之间浮动)可以这样使用:
var options = {
...
physics: {
barnesHut: {
avoidOverlap: 0.5
},
...
}
}
如果您在配置演示中尝试它,您会看到 avoidOverlap
等于 0
很可能拖动和移动节点,以便那些重叠的边缘和网络保持在该职位:
但是一旦我们增加这个值,节点开始从边缘反弹并且不能真正停留在那个位置:
但请注意,此选项不会阻止 edge-edge 交叉,只会 edge-node 重叠(参见 physics/barnesHut/avoidOverlap)。物理文档页面根本不包含 "cross" 这个词,每次出现 "overlap" 都是关于 edge-node 的事情。
所以这会减少布局的噪音,但不会消除交叉边缘。
我正在使用 vis.js 显示一些图表。问题是具有多个中心节点的布局会变得嘈杂(中心节点的邻居重叠)。类似于所附图像的布局是可取的。 是否可以使用 vis.js 实现此目的?
看起来有一个选项可以解决您的问题(我在玩过 physicsConfiguration 之后发现了它,就像我之前建议的那样):
物理学有 avoidOverlap
属性(在 0
和 1
之间浮动)可以这样使用:
var options = {
...
physics: {
barnesHut: {
avoidOverlap: 0.5
},
...
}
}
如果您在配置演示中尝试它,您会看到 avoidOverlap
等于 0
很可能拖动和移动节点,以便那些重叠的边缘和网络保持在该职位:
但是一旦我们增加这个值,节点开始从边缘反弹并且不能真正停留在那个位置:
但请注意,此选项不会阻止 edge-edge 交叉,只会 edge-node 重叠(参见 physics/barnesHut/avoidOverlap)。物理文档页面根本不包含 "cross" 这个词,每次出现 "overlap" 都是关于 edge-node 的事情。
所以这会减少布局的噪音,但不会消除交叉边缘。