[Networkx] Subgraph dei componenti connessi
Alle pressione di un bottone ho creato un finestra che mi elenca tutti i componenti connessi del Graph().
A questo punto seleziono un elemento (corrispondente al numero di nodi di ciascun componente connesso) e premo il tasto che dovrebbe generarmi il subgraph:
Ho provato a stampare il numero dei nodi e dei bordi ma nulla.
Mi ritorna il seguente errore:
Non so cosa sbaglio ma il subgraph non si genera. Potreste illuminarmi? grazie
A questo punto seleziono un elemento (corrispondente al numero di nodi di ciascun componente connesso) e premo il tasto che dovrebbe generarmi il subgraph:
def Extract(self, event): global G_sub sel = self.listBox.GetSelection() val = self.listBox.GetString(sel) for subnodes in nx.connected_components(Gr): if len(subnodes) in val.split(): G_sub = Gr.subgraph(subnodes).copy()
Ho provato a stampare il numero dei nodi e dei bordi ma nulla.
Mi ritorna il seguente errore:
NameError: name 'G_sub' is not defined
Non so cosa sbaglio ma il subgraph non si genera. Potreste illuminarmi? grazie
Risposte
ho risolto in questo modo:
Che ne dite, può andare bene? Grazie
def Extract(self, event): global G_sub sel = self.listBox.GetSelection() CComp = sorted(nx.connected_components(Gr), key=len, reverse=True) for i, subnodes in enumerate(CComp): if i == sel: G_sub = Gr.subgraph(list(subnodes)).copy() else: continue
Che ne dite, può andare bene? Grazie