Subgrafos I
Pode haver momentos em que você queira analisar apenas um subconjunto de nós em uma rede. Para fazer isso, você pode copiá-los para outro objeto de grafo usando G.subgraph(nodes), que retorna um novo objeto graph (do mesmo tipo do grafo original) composto pelo iterável de nodes passado como argumento.
matplotlib.pyplot já foi importado para você como plt.
Este exercício faz parte do curso
Introdução à Análise de Redes em Python
Instruções do exercício
- Escreva uma função
get_nodes_and_nbrs(G, nodes_of_interest)que extraia o subgrafo do grafoGcomposto pelosnodes_of_intereste seus vizinhos.- No primeiro
for, itere sobrenodes_of_intereste adicione o nó atualnanodes_to_draw. - No segundo
for, itere sobre os vizinhos dene adicione todos os vizinhosnbranodes_to_draw.
- No primeiro
- Use a função para extrair o subgrafo de
Tcomposto pelos nós 29, 38 e 42 (contidos na lista pré-definidanodes_of_interest) e seus vizinhos. Salve o resultado comoT_draw. - Desenhe o subgrafo
T_drawna tela.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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()