如何在Cytoscape中使用复合节点布局breadthfirst?

时间:2016-11-10 20:06:06

标签: layout cytoscape.js

我正在修改Cytoscape网站上的第一个例子(顶部有猫的那个)。当我创建一个新的“捕食者”节点并在其中放置猫和狗节点时,然后改变从猫到鸟的边缘,现在从捕食者变为鸟,布局完全混乱。

如何使用带有breadthfirst的复合节点,还是应该使用另一种布局?我不想要任何花哨的东西,我只是希望复合节点遵循与普通节点相同的规则。

1 个答案:

答案 0 :(得分:0)

我知道你想要一些简单的东西,但问题是复合图比普通图更复杂。

复合节点没有独立的维度:http://js.cytoscape.org/#notation/compound-nodes

布局必须考虑到这一点,并且具有通用的,可自定义的算法,用于放置子项,以便满足子项和父项的约束。

这不适合大多数布局,因此只有那些标有明确复合支持的布局才能为您提供所需的结果。普通布局忽略复合节点。

通常,力导向(物理模拟)布局最适合复合图形 - 如Cola或Cose Bilkent。树状布局没有。有太多的情况需要满足复合图的布局规则。

你可以尝试使用方向性约束的Cola来使结果树状。或者你可以write your own layout using the API如果你的复合图很简单,你可以对图的拓扑做出足够的假设。