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
Pokyny k cvičení
- Napiš funkci
get_nodes_and_nbrs(G, nodes_of_interest), která z grafuGextrahuje podgraf tvořený uzlynodes_of_interesta jejich sousedy.- V prvním cyklu
foriteruj přesnodes_of_interesta přidej aktuální uzelndonodes_to_draw. - Ve druhém cyklu
foriteruj přes sousedy uzluna přidej všechny sousedynbrdonodes_to_draw.
- V prvním cyklu
- Pomocí této funkce extrahuj z
Tpodgraf tvořený uzly 29, 38 a 42 (uloženými v předdefinovaném seznamunodes_of_interest) a jejich sousedy. Výsledek ulož jakoT_draw. - Zobraz podgraf
T_drawna 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()