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
Instrukcje do ćwiczenia
- Napisz funkcję
get_nodes_and_nbrs(G, nodes_of_interest), która wyodrębnia z grafuGpodgraf złożony z węzłównodes_of_interestoraz ich sąsiadów.- W pierwszej pętli
foriteruj ponodes_of_interesti dodaj bieżący węzełndonodes_to_draw. - W drugiej pętli
foriteruj po sąsiadach węzłani dodaj wszystkich sąsiadównbrdonodes_to_draw.
- W pierwszej pętli
- Użyj tej funkcji, aby wyodrębnić z grafu
Tpodgraf złożony z węzłów 29, 38 i 42 (zawartych na predefiniowanej liścienodes_of_interest) oraz ich sąsiadów. Zapisz wynik jakoT_draw. - Narysuj podgraf
T_drawna 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()