vis.js - VisJS 稳定

标签 vis.js

我有一个 VisJS 图表,我希望它在我向其中添加内容后立即“适合”。我有大约 200 个节点和 2000 个边。

我已经定义了这些选项,请注意我在稳定选项中说了“fit:true”。

但是,如果我的稳定迭代次数少于 100,则图表根本不适合。

我想保持稳定的数量非常低,以便我的图表加载很快 - 但我想保持它适合。

直到我多次调用拟合函数后,我才能拟合图表,并且我假设应该有一种非常简单的方法来做到这一点。有人可以告诉我吗?

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
        },
    }

};

最佳答案

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

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

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

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

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

干杯

编辑以回答您的问题: 事实证明,在 v4,3 中存在一个错误,该错误不会清除动态静态边的支撑节点,导致拟合在您的情况下没有多大作用。这将在下一个版本中修复。

至于导航按钮的点击事件,你需要自己绑定(bind)它们。基本思想:容器上的document.getElementById。然后获取子级并迭代它们。这样您就可以获得作为按钮的 Dom 元素。 addEventListener 向它们添加监听器并使用它来触发单击。

关于vis.js - VisJS 稳定,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30824924/

相关文章:

javascript - 如何在 vis.js 中限制 Y 轴和 X 轴的值

python - 使用 vis.js 可视化 networkx

javascript - vis.js 时间轴显示/隐藏项目(以及点和线)

javascript - vis.js - 如何运行 getSeed() 方法

javascript - 删除网络 vis.js 中的边缘

javascript - 不使用工具栏 visJs 添加边

javascript - Vis.js - 将图形标签的字体设置为粗体

javascript - 如何在 vis.js 中隐藏图形的分支?

javascript - 增加节点大小 vis.js

javascript - 可以在 foreach() 中使用服务