Sous-graphes I
Il arrive que vous souhaitiez analyser uniquement un sous-ensemble de nœuds dans un réseau. Pour cela, vous pouvez les copier dans un autre objet graphe à l’aide de G.subgraph(nodes), qui renvoie un nouvel objet graph (du même type que le graphe d’origine) composé de l’itérable de nodes passé en argument.
matplotlib.pyplot a été importé pour vous sous le nom plt.
Cet exercice fait partie du cours
Introduction à l’analyse de réseaux en Python
Instructions
- Écrivez une fonction
get_nodes_and_nbrs(G, nodes_of_interest)qui extrait, à partir du grapheG, le sous-graphe composé desnodes_of_interestet de leurs voisins.- Dans la première boucle
for, parcoureznodes_of_interestet ajoutez le nœud courantnànodes_to_draw. - Dans la seconde boucle
for, parcourez les voisins denet ajoutez tous les voisinsnbrànodes_to_draw.
- Dans la première boucle
- Utilisez la fonction pour extraire de
Tle sous-graphe composé des nœuds 29, 38 et 42 (contenus dans la liste prédéfinienodes_of_interest) et de leurs voisins. Enregistrez le résultat dansT_draw. - Affichez le sous-graphe
T_drawà l’écran.
Exercice interactif pratique
Essayez cet exercice en complétant cet exemple de code.
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()