【问题标题】:Cluster multiple edges between two nodes在两个节点之间聚类多条边
【发布时间】:2018-05-04 20:13:24
【问题描述】:

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

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

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

【问题讨论】:

  • 请展示您尝试过的方法并描述您遇到的具体问题。正如目前所写,你的问题不是很清楚。你应该提高你的语法,我在想法描述中看不到足够的动词来理解它是什么。最好的问候
  • 谢谢! (对不起语法)我想做的是:1)i.imgur.com/TIADE9J.png双击聚合边缘时:2)i.imgur.com/bYutc8P.png节点:{id:1,标签:'Node 1'} {id : 2, label: 'Node 2'} {id: 3, label: 'Node 3'} Edges: {from: 1, to: 2} {from: 2, to: 3} {from: 2, to: 3 } {from: 2, to: 3} 我只找到了“启用物理”的解决方案:第一张图像为假,第二张图像为真。还有其他解决方案吗?我只想要点击的边缘,不想更改网络的常规选项。

标签: vis.js vis.js-network


【解决方案1】:

据我了解,“集群”一词仅适用于 vis.js 词汇表中的节点。但是,您可以做的是隐藏边缘。

您必须设置一个 on click 处理程序,在该处理程序中抓取选定的边,获取其 fromto 节点(但是,如果有多个选定边,您必须决定该怎么做) ,找到连接它们和hide 的边,除了一个。

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
});

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

【讨论】:

  • 是的,就是这样 ;) 我想过这个,但我想知道在 vis.js 中是否已经实现了任何东西。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-04-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
相关资源
最近更新 更多