IniziaInizia gratis

Sottografi I

A volte potresti voler analizzare solo un sottoinsieme di nodi in una rete. Per farlo, puoi copiarli in un altro oggetto grafo usando G.subgraph(nodes), che restituisce un nuovo oggetto graph (dello stesso tipo del grafo originale) composto dall’iterabile di nodes passato in input.

matplotlib.pyplot è stato importato per te come plt.

Questo esercizio fa parte del corso

Introduzione all'analisi delle reti in Python

Visualizza il corso

Istruzioni dell'esercizio

  • Scrivi una funzione get_nodes_and_nbrs(G, nodes_of_interest) che estragga il sottografo dal grafo G composto dai nodes_of_interest e dai loro vicini.
    • Nel primo ciclo for, itera su nodes_of_interest e aggiungi il nodo corrente n a nodes_to_draw.
    • Nel secondo ciclo for, itera sui vicini di n e aggiungi tutti i vicini nbr a nodes_to_draw.
  • Usa la funzione per estrarre da T il sottografo composto dai nodi 29, 38 e 42 (contenuti nella lista predefinita nodes_of_interest) e dai loro vicini. Salva il risultato in T_draw.
  • Disegna a schermo il sottografo T_draw.

Esercizio pratico interattivo

Prova a risolvere questo esercizio completando il codice di esempio.

nodes_of_interest = [29, 38, 42]

# Define get_nodes_and_nbrs()
def get_nodes_and_nbrs(G, nodes_of_interest):
    """
    Returns a subgraph of the graph `G` with only the `nodes_of_interest` and their neighbors.
    """
    nodes_to_draw = []

    # Iterate over the nodes of interest
    for n in ____:

        # Append the nodes of interest to nodes_to_draw
        ____

        # Iterate over all the neighbors of node n
        for nbr in ____:

            # Append the neighbors of n to nodes_to_draw
            ____

    return G.subgraph(nodes_to_draw)

# Extract the subgraph with the nodes of interest: T_draw
T_draw = ____

# Draw the subgraph to the screen
____
plt.show()
Modifica ed esegui il codice