Zacznij terazZacznij za darmo

Podgrafy I

Czasami warto przeanalizować tylko wybrany podzbiór węzłów sieci. Możesz go wyodrębnić do osobnego obiektu grafu za pomocą G.subgraph(nodes), która zwraca nowy obiekt graph (tego samego typu co oryginalny graf), złożony z przekazanego iterowalnego zbioru nodes.

Biblioteka matplotlib.pyplot jest już zaimportowana jako plt.

To ćwiczenie jest częścią kursu

Wprowadzenie do analizy sieci w Pythonie

Zobacz kurs

Instrukcje do ćwiczenia

  • Napisz funkcję get_nodes_and_nbrs(G, nodes_of_interest), która wyodrębnia z grafu G podgraf złożony z węzłów nodes_of_interest oraz ich sąsiadów.
    • W pierwszej pętli for iteruj po nodes_of_interest i dodaj bieżący węzeł n do nodes_to_draw.
    • W drugiej pętli for iteruj po sąsiadach węzła n i dodaj wszystkich sąsiadów nbr do nodes_to_draw.
  • Użyj tej funkcji, aby wyodrębnić z grafu T podgraf złożony z węzłów 29, 38 i 42 (zawartych na predefiniowanej liście nodes_of_interest) oraz ich sąsiadów. Zapisz wynik jako T_draw.
  • Narysuj podgraf T_draw na ekranie.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

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()
Edytuj i uruchom kod