根据cytoscape.js中的分层边序列获取数据数组

时间:2018-06-07 19:24:25

标签: cytoscape.js

我使用cytoscape.js来组织代表任务执行的节点流。有时,任务不是分层次创建的。

至少以视觉方式,边缘给出正确的序列。

我想基于边缘获得分层序列并将其数据列为数组。每条指数都会因为边缘所说的而失望。

上图显示了基于边缘箭头的序列。我想将这个边/箭头序列转换成一个完美的数据序列(数组)。

enter image description here

glpurch ((name : dt : rest) :r) = (name, dt, (rlist $ unwords rest)) : gplpurch r 方法将visual转换为数组,但它传递的原始数据序列相同。

怎么做?在cytoscape核心中有一些方法吗?

1 个答案:

答案 0 :(得分:0)

最简单的方法是为节点ID提供序列中相应的数字:

- >执行的第一个任务是id 1,第二个任务是id 2 ...

初始化之后,您可以进行n次迭代循环(n = cy中的节点数)并逐个获取节点。这样您就可以访问他们的信息并将这些数据输入数组:

for (i = 0; i < cy.nodes().length; i++) {
    var curr = cy.nodes("[id = '" + i + "']");   // This way you get the node with the id == i
    //do stuff
    array[i] = theDataYouNeed;
}

如果您希望节点位于层次结构中,则必须重新考虑布局。细胞景观中的层次结构可以通过&#34;有向无环图&#34;来实现。 (=在cytoscape中的dagre)。