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
Anleitung zur Übung
- Schreibe eine Funktion
get_nodes_and_nbrs(G, nodes_of_interest), die den Teilgraphen aus GraphGextrahiert, der aus dennodes_of_interestund ihren Nachbarn besteht.- Iteriere in der ersten
for-Schleife übernodes_of_interestund füge den aktuellen Knotennzunodes_to_drawhinzu. - Iteriere in der zweiten
for-Schleife über die Nachbarn vonnund füge alle Nachbarnnbrzunodes_to_drawhinzu.
- Iteriere in der ersten
- Verwende die Funktion, um aus
Tden Teilgraphen zu extrahieren, der aus den Knoten 29, 38 und 42 (in der vordefinierten Listenodes_of_interest) und deren Nachbarn besteht. Speichere das Ergebnis alsT_draw. - Zeichne den Teilgraphen
T_drawauf 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()