我使用cytoscape.js来组织代表任务执行的节点流。有时,任务不是分层次创建的。
至少以视觉方式,边缘给出正确的序列。
我想基于边缘获得分层序列并将其数据列为数组。每条指数都会因为边缘所说的而失望。
上图显示了基于边缘箭头的序列。我想将这个边/箭头序列转换成一个完美的数据序列(数组)。
glpurch ((name : dt : rest) :r) = (name, dt, (rlist $ unwords rest)) : gplpurch r
方法将visual转换为数组,但它传递的原始数据序列相同。
怎么做?在cytoscape核心中有一些方法吗?
答案 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)。