我们从Python开源项目中,提取了以下6个代码示例,用于说明如何使用networkx.weakly_connected_component_subgraphs()。
def run(self): saved_targets = self.settings.parsed_args.target self.settings.parsed_args.target = ['.'] ret = super(CmdShowPipeline, self).run() self.settings.parsed_args.target = saved_targets if ret != 0: Logger.error('Failed to build dependency graph for the project') return 1 # Try to find independent clusters which might occure # when a bunch of data items were used independently. self.subs = nx.weakly_connected_component_subgraphs(self.g) return self.draw_targets(saved_targets)
def get_largest_component(G, strongly=False): """ Return the largest weakly or strongly connected component from a directed graph. Parameters ---------- G : networkx multidigraph strongly : bool if True, return the largest strongly instead of weakly connected component Returns ------- networkx multidigraph """ start_time = time.time() original_len = len(list(G.nodes())) if strongly: # if the graph is not connected and caller did not request retain_all, # retain only the largest strongly connected component if not nx.is_strongly_connected(G): G = max(nx.strongly_connected_component_subgraphs(G), key=len) msg = ('Graph was not connected, retained only the largest strongly ' 'connected component ({:,} of {:,} total nodes) in {:.2f} seconds') log(msg.format(len(list(G.nodes())), original_len, time.time()-start_time)) else: # if the graph is not connected and caller did not request retain_all, # retain only the largest weakly connected component if not nx.is_weakly_connected(G): G = max(nx.weakly_connected_component_subgraphs(G), key=len) msg = ('Graph was not connected, retained only the largest weakly ' 'connected component ({:,} of {:,} total nodes) in {:.2f} seconds') log(msg.format(len(list(G.nodes())), original_len, time.time()-start_time)) return G
def get_lcc(di_graph): di_graph = max(nx.weakly_connected_component_subgraphs(di_graph), key=len) tdl_nodes = di_graph.nodes() nodeListMap = dict(zip(tdl_nodes, range(len(tdl_nodes)))) nx.relabel_nodes(di_graph, nodeListMap, copy=False) return di_graph, nodeListMap
def main(): G, karmas = read_data("karma.txt") cs = nx.weakly_connected_component_subgraphs(G) cs.sort(key=lambda c: c.number_of_nodes(), reverse=True) plt.clf() draw(cs[126], karmas) plt.show()
def get_largest_component(graph): """Gets the giant component of a subgraph :param pybel.BELGraph graph: A BEL Graph :return: The giant component of the graph :rtype: pybel.BELGraph """ return max(nx.weakly_connected_component_subgraphs(graph), key=len)
def evaluateStaticLinkPrediction(digraph, graph_embedding, train_ratio=0.8, n_sample_nodes=None, sample_ratio_e=None, no_python=False, is_undirected=True): node_num = digraph.number_of_nodes() # seperate train and test graph train_digraph, test_digraph = evaluation_util.splitDiGraphToTrainTest( digraph, train_ratio=train_ratio, is_undirected=is_undirected ) if not nx.is_connected(train_digraph.to_undirected()): train_digraph = max( nx.weakly_connected_component_subgraphs(train_digraph), key=len ) tdl_nodes = train_digraph.nodes() nodeListMap = dict(zip(tdl_nodes, range(len(tdl_nodes)))) nx.relabel_nodes(train_digraph, nodeListMap, copy=False) test_digraph = test_digraph.subgraph(tdl_nodes) nx.relabel_nodes(test_digraph, nodeListMap, copy=False) # learning graph embedding X, _ = graph_embedding.learn_embedding( graph=train_digraph, no_python=no_python ) node_l = None if n_sample_nodes: test_digraph, node_l = graph_util.sample_graph( test_digraph, n_sample_nodes ) X = X[node_l] # evaluation if sample_ratio_e: eval_edge_pairs = evaluation_util.getRandomEdgePairs( node_num, sample_ratio_e, is_undirected ) else: eval_edge_pairs = None estimated_adj = graph_embedding.get_reconstructed_adj(X, node_l) predicted_edge_list = evaluation_util.getEdgeListFromAdjMtx( estimated_adj, is_undirected=is_undirected, edge_pairs=eval_edge_pairs ) filtered_edge_list = [e for e in predicted_edge_list if not train_digraph.has_edge(e[0], e[1])] MAP = metrics.computeMAP(filtered_edge_list, test_digraph) prec_curv, _ = metrics.computePrecisionCurve( filtered_edge_list, test_digraph ) return (MAP, prec_curv)