LoslegenKostenlos starten

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

<Kurs>Einstieg in die Netzwerkanalyse mit Python</Kurs>
Kurs ansehen

Übungsanweisungen

  • 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 praktische Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

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