Sous-graphes I
Il arrive qu'on veuille analyser seulement un sous-ensemble de nœuds dans un réseau. Pour ce faire, vous pouvez les copier dans un autre objet graphe avec G.subgraph(nodes), qui retourne un nouvel objet graph (du même type que le graphe d'origine) composé de l'itérable de nodes fourni en argument.
matplotlib.pyplot a déjà été importé sous le nom plt.
Cette activité fait partie du cours
Introduction à l'analyse des réseaux en Python
Instructions de l’exercice
- Écrivez une fonction
get_nodes_and_nbrs(G, nodes_of_interest)qui extrait le sous-graphe du grapheGcomposé 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 deuxième boucle
for, parcourez les voisins denet ajoutez tous les voisinsnbrànodes_to_draw.
- Dans la première boucle
- Utilisez la fonction pour extraire, à partir de
T, le 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 à l'écran le sous-graphe
T_draw.
Exercice interactif pratique
Essayez cet exercice en complétant ce code d’exemple.
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()