ComenzarEmpieza gratis

Subgrafos I

Puede que a veces solo quieras analizar un subconjunto de nodos de una red. Para hacerlo, puedes copiarlos a otro objeto grafo usando G.subgraph(nodes), que devuelve un nuevo objeto graph (del mismo tipo que el grafo original) compuesto por el iterable de nodes que se le pasó.

matplotlib.pyplot ya se ha importado como plt.

Este ejercicio forma parte del curso

Introducción al análisis de redes en Python

Ver curso

Instrucciones del ejercicio

  • Escribe una función get_nodes_and_nbrs(G, nodes_of_interest) que extraiga el subgrafo del grafo G compuesto por los nodes_of_interest y sus vecinos.
    • En el primer bucle for, itera sobre nodes_of_interest y añade el nodo actual n a nodes_to_draw.
    • En el segundo bucle for, itera sobre los vecinos de n y añade todos los vecinos nbr a nodes_to_draw.
  • Usa la función para extraer el subgrafo de T compuesto por los nodos 29, 38 y 42 (incluidos en la lista predefinida nodes_of_interest) y sus vecinos. Guarda el resultado como T_draw.
  • Dibuja en pantalla el subgrafo T_draw.

Ejercicio interactivo práctico

Prueba este ejercicio y completa el código de muestra.

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()
Editar y ejecutar código