CommencezCommencez gratuitement

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

Voir le cours

Instructions de l’exercice

  • Écrivez une fonction get_nodes_and_nbrs(G, nodes_of_interest) qui extrait le sous-graphe du graphe G composé des nodes_of_interest et de leurs voisins.
    • Dans la première boucle for, parcourez nodes_of_interest et ajoutez le nœud courant n à nodes_to_draw.
    • Dans la deuxième boucle for, parcourez les voisins de n et ajoutez tous les voisins nbr à nodes_to_draw.
  • 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éfinie nodes_of_interest) et de leurs voisins. Enregistrez le résultat dans T_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()
Modifier et exécuter le code