Sottografi I
A volte potresti voler analizzare solo un sottoinsieme di nodi in una rete. Per farlo, puoi copiarli in un altro oggetto grafo usando G.subgraph(nodes), che restituisce un nuovo oggetto graph (dello stesso tipo del grafo originale) composto dall’iterabile di nodes passato in input.
matplotlib.pyplot è stato importato per te come plt.
Questo esercizio fa parte del corso
Introduzione all'analisi delle reti in Python
Istruzioni dell'esercizio
- Scrivi una funzione
get_nodes_and_nbrs(G, nodes_of_interest)che estragga il sottografo dal grafoGcomposto dainodes_of_intereste dai loro vicini.- Nel primo ciclo
for, itera sunodes_of_intereste aggiungi il nodo correntenanodes_to_draw. - Nel secondo ciclo
for, itera sui vicini dine aggiungi tutti i vicininbranodes_to_draw.
- Nel primo ciclo
- Usa la funzione per estrarre da
Til sottografo composto dai nodi 29, 38 e 42 (contenuti nella lista predefinitanodes_of_interest) e dai loro vicini. Salva il risultato inT_draw. - Disegna a schermo il sottografo
T_draw.
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
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()