Delgrafer I
Ibland kan du behöva analysera enbart en delmängd av noder i ett nätverk. Det gör du genom att kopiera ut dem till ett nytt grafobjekt med G.subgraph(nodes), som returnerar ett nytt graph-objekt (av samma typ som originalgrafen) bestående av den iterable av nodes som skickas in.
matplotlib.pyplot har importerats åt dig som plt.
Den här övningen är en del av kursen
Introduktion till nätverksanalys i Python
Övningsinstruktioner
- Skriv en funktion
get_nodes_and_nbrs(G, nodes_of_interest)som extraherar delgrafen från grafenGbestående avnodes_of_interestoch deras grannar.- I den första
for-loopen itererar du övernodes_of_interestoch lägger till den aktuella nodenninodes_to_draw. - I den andra
for-loopen itererar du över grannarna tillnoch lägger till samtliga grannarnbrinodes_to_draw.
- I den första
- Använd funktionen för att extrahera delgrafen från
Tbestående av noderna 29, 38 och 42 (lagrade i den fördefinierade listannodes_of_interest) och deras grannar. Spara resultatet somT_draw. - Rita delgrafen
T_drawpå skärmen.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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()