获取没有边的节点
Getting nodes without edges
我在图表中有大量节点,使用一些过滤器,我可以使用 cy.remove(myCollection)
在某些条件下删除一些边。
有时会发生一个节点的所有边都被删除,因此它没有边单独存在。在Cytoscape中有什么方法可以找到这些没有边缘的节点吗?
我出去的时候是这样的:
cy.nodes(/*:inside*/).filter(node => node.connectedEdges().size() === 0)
但是这个 returns 是一个空集合?
这个(到目前为止)的一个解决方案是,我将通过在 node/edge 上设置数据 属性 并使用 [=11 设置样式来进行过滤,而不是在图形内部进行操作=] 使用数据 属性 作为条件。那么这是有效的:
const nodesWithoutEdges = cy.nodes().filter(node => node.connectedEdges(":visible").size() === 0)
我遇到过类似的问题:我不得不从图中删除没有边的节点。我通过使用 node.degree() 和一个函数来解决它,该函数循环遍历我的图形节点并找到 degree=0 的节点(indegree 和 outdegree,这意味着节点既没有来源或目标)。
`cy.nodes(function(element){
if( element.isNode() && element.degree()<1){
cy.remove(element)
}
})`
希望它对解决您的问题有用
我在图表中有大量节点,使用一些过滤器,我可以使用 cy.remove(myCollection)
在某些条件下删除一些边。
有时会发生一个节点的所有边都被删除,因此它没有边单独存在。在Cytoscape中有什么方法可以找到这些没有边缘的节点吗?
我出去的时候是这样的:
cy.nodes(/*:inside*/).filter(node => node.connectedEdges().size() === 0)
但是这个 returns 是一个空集合?
这个(到目前为止)的一个解决方案是,我将通过在 node/edge 上设置数据 属性 并使用 [=11 设置样式来进行过滤,而不是在图形内部进行操作=] 使用数据 属性 作为条件。那么这是有效的:
const nodesWithoutEdges = cy.nodes().filter(node => node.connectedEdges(":visible").size() === 0)
我遇到过类似的问题:我不得不从图中删除没有边的节点。我通过使用 node.degree() 和一个函数来解决它,该函数循环遍历我的图形节点并找到 degree=0 的节点(indegree 和 outdegree,这意味着节点既没有来源或目标)。
`cy.nodes(function(element){
if( element.isNode() && element.degree()<1){
cy.remove(element)
}
})`
希望它对解决您的问题有用