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
Oefeninstructies
- Schrijf een functie
get_nodes_and_nbrs(G, nodes_of_interest)die de subgraaf uit graafGextraheert die bestaat uit denodes_of_interesten hun buren.- Loop in de eerste
for-lus overnodes_of_interesten voeg de huidige knoopntoe aannodes_to_draw. - Loop in de tweede
for-lus over de buren vannen voeg alle burennbrtoe aannodes_to_draw.
- Loop in de eerste
- Gebruik de functie om de subgraaf uit
Tte halen die bestaat uit knopen 29, 38 en 42 (opgenomen in de vooraf gedefinieerde lijstnodes_of_interest) en hun buren. Sla het resultaat op alsT_draw. - Teken de subgraaf
T_drawop 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()