Aan de slagGa gratis aan de slag

Subgrafen I

Soms wil je alleen een subset van knopen in een netwerk analyseren. Dat kan door ze te kopiëren naar een ander graafobject met G.subgraph(nodes). Dit geeft een nieuw graph-object terug (van hetzelfde type als de oorspronkelijke graaf) dat bestaat uit de iterabele nodes die je doorgeeft.

matplotlib.pyplot is al voor je geïmporteerd als plt.

Deze oefening maakt deel uit van de cursus

Introductie tot netwerkanalyse in Python

Cursus bekijken

Oefeninstructies

  • Schrijf een functie get_nodes_and_nbrs(G, nodes_of_interest) die de subgraaf uit graaf G extraheert die bestaat uit de nodes_of_interest en hun buren.
    • Loop in de eerste for-lus over nodes_of_interest en voeg de huidige knoop n toe aan nodes_to_draw.
    • Loop in de tweede for-lus over de buren van n en voeg alle buren nbr toe aan nodes_to_draw.
  • Gebruik de functie om de subgraaf uit T te halen die bestaat uit knopen 29, 38 en 42 (opgenomen in de vooraf gedefinieerde lijst nodes_of_interest) en hun buren. Sla het resultaat op als T_draw.
  • Teken de subgraaf T_draw op het scherm.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

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()
Code bewerken en uitvoeren