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>Übungsanweisungen
- 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 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()