2017-12-06 19 views
2

グラフにはノードがたくさんあり、いくつかのフィルタでは、ある条件でいくつかのエッジを削除することができます。cy.remove(myCollection)を使用します。エッジのないノードの取得

ノードへのすべてのエッジが削除されるため、エッジなしで単独で座ってしまうことがあります。 Cytoscapeにエッジを持たないこれらのノードを見つける方法はありますか?

私のような何かに出ていた:

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

しかし、これは空のコレクションを返しますか?

答えて

0

グラフの中のwhatsを操作する代わりに、データプロパティを条件としてノード/エッジとスタイルのデータプロパティを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) 
     } 
    })` 

は、あなたの問題を解決するために有用である可能性ホープ

関連する問題