我有一张VisJS图表,我希望它在添加内容后立即“适合”。我有大约200个节点和2000个边缘。
我已经定义了这些选项,请注意我在Stabilization选项中说“fit:true”。
但是,如果我的稳定迭代次数小于100,则图表根本不适合。
我想保持稳定的数量非常低,以便我的图表很快加载 - 但我想保持它的合适。
在我多次调用fit函数之前,我无法使图表适合,我假设应该有一个非常简单的方法来执行此操作。有人可以告诉我。
var options = {
nodes: {
shape: 'dot',
scaling: {
label: {
min: 20,
max: 40
},
}
},
edges: {
smooth: {
enabled: true,
type: "dynamic",
// roundness: 0.5
},},
interaction: {
multiselect: false,
navigationButtons: true,
selectable: true,
selectConnectedEdges: true,
tooltipDelay: 100,
zoomView: true
},
physics: {
stabilization: {
enabled: true,
iterations: 180, // maximum number of iteration to stabilize
updateInterval: 10,
onlyDynamicEdges: false,
fit: true
},
}
};
答案 0 :(得分:2)
我是vis的网络模块的开发者,好像你发现了一个bug :)。
在稳定迭代完成后,网络应该适合。在稳定过程中是异步的,因此您应该监听stabilizationIterationsDone事件并在那里调用fit函数作为快速修复。
你提到你想保持网络适应,如果你想在每次渲染迭代中保持适应,我想最好的方法是在initRedraw事件中调用fit函数。这可能有点贵。
我们尝试在GitHub页面上收集所有这些问题,错误报告和功能请求。如果您遇到任何其他问题或有疑问,请在那里询问。
http://www.github.com/almende/vis
干杯
编辑以回答您的问题: 事实证明,在v4,3中有一个错误,它不会清理动态静态边缘的支持节点,导致在你的情况下不适合做多少。这将在下一个版本中修复。
对于导航按钮的点击事件,您必须自己绑定它们。基本思路:容器上的document.getElementById。然后让孩子们迭代他们。这样你就可以获得作为按钮的Dom元素。 addEventListener为它们添加一个侦听器并使用它来触发单击。