聚类两个节点之间的多条边

Cluster multiple edges between two nodes

我正在使用 vis.js 进行网络可视化。 我的想法是开发一个像 Google 地图缩放这样的解决方案,因为它在不缩放时聚集边缘和节点。

除了在相同的两个节点之间对多条边进行聚类之外,我还想对节点进行聚类。 像集群节点一样,当集群边缘被缩放或点击时,我想显示所有不同的边缘更多信息。

我没有在 vis.js 文档中找到有关聚类、问题和疑问的答案。此功能可用吗?

据我了解,术语 "clustering" 仅适用于 vis.js 词汇表中的节点。但是,您可以做的是隐藏边缘。

您必须设置一个 on click handler where you grab the selected edge, get its from and to nodes (you have to decide what to do if there's more than one selected edge, though), find the edges connecting them and 除了一个。

network.on('click',function(eventParams){

    var edges = eventParams.edges;
    if(edges.length == 0)
        return;

    var edge = edges[0],
        fromID = edge.from,
        toID = edge.to;

    // get the nodes by ids, find all edges connecting them, hide all but the selected one
});

要将其进一步推进到切换,您必须检查是否有任何连接边被隐藏,如果至少有一个被隐藏,则显示全部,否则隐藏除一个以外的所有边。