CommencerCommencer gratuitement

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

Afficher le cours

Instructions

  • Écrivez une fonction get_nodes_and_nbrs(G, nodes_of_interest) qui extrait, à partir du graphe G, le sous-graphe 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 seconde boucle for, parcourez les voisins de n et ajoutez tous les voisins nbr à nodes_to_draw.
  • Utilisez la fonction pour extraire 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 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()
Modifier et exécuter le code