VisJS稳定

时间:2015-06-14 00:34:54

标签: vis.js

我有一张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
        },
    }

};

1 个答案:

答案 0 :(得分:2)

我是vis的网络模块的开发者,好像你发现了一个bug :)。

在稳定迭代完成后,网络应该适合。在稳定过程中是异步的,因此您应该监听stabilizationIterationsDone事件并在那里调用fit函数作为快速修复。

你提到你想保持网络适应,如果你想在每次渲染迭代中保持适应,我想最好的方法是在initRedraw事件中调用fit函数。这可能有点贵。

我们尝试在GitHub页面上收集所有这些问题,错误报告和功能请求。如果您遇到任何其他问题或有疑问,请在那里询问。

http://www.github.com/almende/vis

干杯

编辑以回答您的问题: 事实证明,在v4,3中有一个错误,它不会清理动态静态边缘的支持节点,导致在你的情况下不适合做多少。这将在下一个版本中修复。

对于导航按钮的点击事件,您必须自己绑定它们。基本思路:容器上的document.getElementById。然后让孩子们迭代他们。这样你就可以获得作为按钮的Dom元素。 addEventListener为它们添加一个侦听器并使用它来触发单击。