我正在构建一个网络应用程序,用户可以在其中创建一种二分图,如下所示:
有时用户希望构建一个巨大图,例如最顶层有 784 个节点的图,如下图所示。我的应用程序可以处理计算,但结果丑陋且毫无意义:
您是否有任何想法来渲染一个巨大的图层,而不仅仅是绘制所有节点,而是用另一种更漂亮的表示方式总结它们?
到目前为止,我一直在考虑将“巨大”层的所有节点放入一个空的复合节点中,但是当然不可能绘制一些边缘(因此巨大的层看起来就像与图形)。另一种解决方案是让所有节点数超过 100 个的层恰好有 100 个节点,并将它们放在一个复合节点中,其 z 索引大于每个节点的 z 索引;但我还没有尝试过。
如果您有其他想法,或者 Cytoscape.js 提供了总结大型图表的方法,请告诉我。
谢谢。
最佳答案
当层中的数量超过一定数量时,您可以对节点进行分组(例如,如果您有 100 个节点,则将它们组合为 25 个组) 我将通过迭代层中的节点,为每个子组创建一个新节点 N(插入所需的所有相关信息),然后在所有相关边( finding connected edges )中用 N 替换任何提及的被替换节点来实现此目的.
由于我个人在将布局/节点发送到 cytoscape 进行可视化之前在 python 中生成布局/节点,因此我将避免发布可能低效/不正确的 javascript/cytoscape 示例:)
关于javascript - 总结Cytoscape.js中的很多节点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44067837/