如何找到子图
How to find subgraph
我正在尝试显示包含用户选定节点的断开连接的有向图的特定子图。 parents的所有parents、parents...和children的children、children直到根和叶。我需要隐藏图表的其余部分。
任何帮助将不胜感激。
正如@aksam 所建议的,类似于:
var selectedNode = cy.$('node:selected');
var visitedArr = [ selectedNode ];
cy.elements().bfs({ // or dfs
roots: selectedNode,
visit: function(i, depth, v, e, u){
visitedArr.push( v );
},
directed: false // or your preference
});
var subgraph = cy.collection( visitedArr );
cy.batch(function(){
cy.elements().not( subgraph ).addClass('hidden');
subgraph.removeClass('hidden');
});
maxkfranz 的回答给我错误。
根据他的回答,这给了我正确的解决方案:
var selectedNode = cy.$('node:selected');
var visitedArr = [ selectedNode ];
cy.elements().bfs({ // or dfs
roots: selectedNode,
visit: function(v, e, u, i, depth){
visitedArr.push( v );
},
directed: false // or your preference
});
var subgraph = cy.collection( visitedArr );
cy.batch(function(){
cy.nodes().hide();
subgraph.show();
});
我正在尝试显示包含用户选定节点的断开连接的有向图的特定子图。 parents的所有parents、parents...和children的children、children直到根和叶。我需要隐藏图表的其余部分。
任何帮助将不胜感激。
正如@aksam 所建议的,类似于:
var selectedNode = cy.$('node:selected');
var visitedArr = [ selectedNode ];
cy.elements().bfs({ // or dfs
roots: selectedNode,
visit: function(i, depth, v, e, u){
visitedArr.push( v );
},
directed: false // or your preference
});
var subgraph = cy.collection( visitedArr );
cy.batch(function(){
cy.elements().not( subgraph ).addClass('hidden');
subgraph.removeClass('hidden');
});
maxkfranz 的回答给我错误。
根据他的回答,这给了我正确的解决方案:
var selectedNode = cy.$('node:selected');
var visitedArr = [ selectedNode ];
cy.elements().bfs({ // or dfs
roots: selectedNode,
visit: function(v, e, u, i, depth){
visitedArr.push( v );
},
directed: false // or your preference
});
var subgraph = cy.collection( visitedArr );
cy.batch(function(){
cy.nodes().hide();
subgraph.show();
});