我正在使用 vis.js 显示节点,并非所有节点都相互连接,但它们如图所示重叠,有没有办法避免这种情况,我通过配置选项但无法寻找。
4 回答
在 BarnesHut http://visjs.org/docs/network/physics.html?#
您可以在底部的物理http://visjs.org/examples/network/other/configuration.html下尝试它
就像将此属性添加到您的物理选项中
var options = {
... "physics": {
"barnesHut": {
"avoidOverlap": 1
},
}
}
我设法通过使用以下configure
选项使其工作:
configure: {
enabled: true,
showButton: true
}
这向您展示了一个配置所有选项的模式,直到图表看起来不错。
在我使用分层视图的情况下,我必须禁用物理并像这样设置布局:
layout: {
hierarchical: {
enabled: true,
nodeSpacing: 425,
blockShifting: false,
edgeMinimization: false,
sortMethod: "directed"
}
}
我建议对物理和布局使用手动配置:
configure: {
enabled: true,
filter: 'physics, layout',
showButton: true
}
并尝试使用 nodeDistance和nodeSpacing。
我对此尝试了很多选项并发现它实际上取决于物理配置:如果您的物理配置是这样的
物理:false,那么你可以只使用这个布局:{分层:{levelSeparation:150,treeSpacing:200,blockShifting:true,edgeMinimization:true,parentCentralization:true,direction:'UD',nodeSpacing:300,sortMethod:“directed " // 定向, 集线器 } },
其中 nodeSpacing 是您的关键,而 sord 方法将为您定义结构 这构成了这样的网络:
否则使用手动配置:
配置:{启用:真,过滤器:'物理,布局',显示按钮:真}