LoslegenKostenlos loslegen

Teilgraphen I

Manchmal möchtest du nur eine Teilmenge von Knoten in einem Netzwerk analysieren. Dazu kannst du sie mit G.subgraph(nodes) in ein anderes Graphobjekt kopieren. Diese Funktion gibt ein neues graph-Objekt zurück (vom selben Typ wie der ursprüngliche Graph), das aus dem übergebenen Iterable von nodes besteht.

matplotlib.pyplot wurde bereits als plt importiert.

Diese Übung ist Teil des Kurses

Einstieg in die Netzwerkanalyse mit Python

Kurs anzeigen

Anleitung zur Übung

  • Schreibe eine Funktion get_nodes_and_nbrs(G, nodes_of_interest), die den Teilgraphen aus Graph G extrahiert, der aus den nodes_of_interest und ihren Nachbarn besteht.
    • Iteriere in der ersten for-Schleife über nodes_of_interest und füge den aktuellen Knoten n zu nodes_to_draw hinzu.
    • Iteriere in der zweiten for-Schleife über die Nachbarn von n und füge alle Nachbarn nbr zu nodes_to_draw hinzu.
  • Verwende die Funktion, um aus T den Teilgraphen zu extrahieren, der aus den Knoten 29, 38 und 42 (in der vordefinierten Liste nodes_of_interest) und deren Nachbarn besteht. Speichere das Ergebnis als T_draw.
  • Zeichne den Teilgraphen T_draw auf den Bildschirm.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

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 bearbeiten und ausführen