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
Instrucciones del ejercicio
- Escribe una función
get_nodes_and_nbrs(G, nodes_of_interest)que extraiga el subgrafo del grafoGcompuesto por losnodes_of_interesty sus vecinos.- En el primer bucle
for, itera sobrenodes_of_interesty añade el nodo actualnanodes_to_draw. - En el segundo bucle
for, itera sobre los vecinos deny añade todos los vecinosnbranodes_to_draw.
- En el primer bucle
- Usa la función para extraer el subgrafo de
Tcompuesto por los nodos 29, 38 y 42 (incluidos en la lista predefinidanodes_of_interest) y sus vecinos. Guarda el resultado comoT_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()