[Networkx] Subgraph dei componenti connessi

Messaggioda mic_1 » 08/06/2021, 13:43

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:
Codice:
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:
Codice:
NameError: name 'G_sub' is not defined

Non so cosa sbaglio ma il subgraph non si genera. Potreste illuminarmi? grazie
mic_1
Junior Member
Junior Member
 
Messaggio: 180 di 386
Iscritto il: 11/01/2011, 18:11

Re: [Networkx] Subgraph dei componenti connessi

Messaggioda mic_1 » 11/06/2021, 09:47

ho risolto in questo modo:
Codice:
   
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
mic_1
Junior Member
Junior Member
 
Messaggio: 181 di 386
Iscritto il: 11/01/2011, 18:11


Torna a Informatica

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite