汇总 Cytoscape.js 中的许多节点

Summarise many nodes in Cytoscape.js

我正在构建一个网络应用程序,用户可以在其中创建一种 二分图,如下所示:

有时用户想构建一个巨大的图,例如最顶层有784个节点的图,如下图。我的应用程序可以处理计算,但结果丑陋且毫无意义:

您是否有任何想法来渲染一个巨大的层而不是只绘制所有节点,而是 用另一个更漂亮的表示来总结它们?

直到现在我都想过把一个"huge"层的所有节点放在一个空的复合节点中,但是当然不可能画一些边(所以巨大的层看起来像与图表断开连接)。另一种解决方案是让所有超过 100 个节点的层正好有 100 个节点,并将它们放在一个 z-index 大于每个节点的 z-index 的复合节点中;但我还没试过。

如果您有其他想法,或者如果 Cytoscape.js 提供了一种总结大图的方法,请告诉我。

谢谢。

当层中的数量超过一定数量时,您可以对节点进行分组(例如,如果您有 100 个节点,则将它们组合成 25 个一组) 我会通过遍历层中的节点,为每个子组创建一个新节点 N(插入所有需要的相关信息),然后在所有相关边(finding connected edges).

由于我个人在 python 中生成 layouts/nodes,然后将它们发送到 cytoscape 进行可视化,因此我将避免发布潜在的 ineffecient/incorrect javascript/cytoscape 示例 :)