ComeçarComece de graça

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

Ver curso

Instruções do exercício

  • Escreva uma função get_nodes_and_nbrs(G, nodes_of_interest) que extraia o subgrafo do grafo G composto pelos nodes_of_interest e seus vizinhos.
    • No primeiro for, itere sobre nodes_of_interest e adicione o nó atual n a nodes_to_draw.
    • No segundo for, itere sobre os vizinhos de n e adicione todos os vizinhos nbr a nodes_to_draw.
  • Use a função para extrair o subgrafo de T composto pelos nós 29, 38 e 42 (contidos na lista pré-definida nodes_of_interest) e seus vizinhos. Salve o resultado como T_draw.
  • Desenhe o subgrafo T_draw na 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()
Editar e executar o código