Začněte nyníZačněte zdarma

Podgrafy I

Někdy se může hodit analyzovat jen určitou podmnožinu uzlů v síti. K tomu je lze zkopírovat do nového objektu grafu pomocí G.subgraph(nodes), který vrátí nový objekt graph (stejného typu jako původní graf) tvořený iterovatelnou kolekcí předaných nodes.

matplotlib.pyplot byl pro tebe importován jako plt.

Toto cvičení je součástí kurzu

Úvod do analýzy sítí v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Napiš funkci get_nodes_and_nbrs(G, nodes_of_interest), která z grafu G extrahuje podgraf tvořený uzly nodes_of_interest a jejich sousedy.
    • V prvním cyklu for iteruj přes nodes_of_interest a přidej aktuální uzel n do nodes_to_draw.
    • Ve druhém cyklu for iteruj přes sousedy uzlu n a přidej všechny sousedy nbr do nodes_to_draw.
  • Pomocí této funkce extrahuj z T podgraf tvořený uzly 29, 38 a 42 (uloženými v předdefinovaném seznamu nodes_of_interest) a jejich sousedy. Výsledek ulož jako T_draw.
  • Zobraz podgraf T_draw na obrazovce.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

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()
Upravit a spustit kód