2017-12-06 7 views
2

그래프에 노드 수가 많으며 일부 필터로는 어떤 조건으로 일부 모서리를 제거 할 수 있습니다 (cy.remove(myCollection) 사용).모서리가없는 노드 얻기

때로는 노드의 모든 가장자리가 제거되어 가장자리가 없어도 혼자 앉아있을 때가 있습니다. Cytoscape에서 에지없이 이러한 노드를 찾는 방법이 있습니까?

내가 좋아하는 일에서였다

cy.nodes(/*:inside*/).filter(node => node.connectedEdges().size() === 0) 

하지만이 빈 컬렉션을 반환?

답변

0

그래프의 내용을 조작하는 대신 데이터 속성을 조건으로 사용하여 노드/에지 및 스타일의 데이터 속성을 display: "none"으로 설정하여 필터링을 수행합니다. 그럼,이 작동하고 있습니다 :

const nodesWithoutEdges = cy.nodes().filter(node => node.connectedEdges(":visible").size() === 0) 
1

비슷한 문제가 있었는데 : 나는 그래프에서 가장자리없이 노드를 제거해야했습니다. 나는 node.degree()을 사용하여 그래프의 노드를 순환하고 차수가 0 인 사람들을 찾아서 (즉, 노드가 소스도 타겟도 없음을 의미) 함수를 사용하여이를 해결했습니다.

`cy.nodes(function(element){ 
     if(element.isNode() && element.degree()<1){ 
      cy.remove(element) 
     } 
    })` 

은 당신의 문제를 해결하기 위해 도움이 될 수있는 희망

관련 문제