Підграфи I
Часом потрібно проаналізувати лише підмножину вузлів мережі. Для цього можна скопіювати їх в інший об'єкт графа за допомогою G.subgraph(nodes). Вона повертає новий об'єкт graph (того самого типу, що й початковий граф), який складається з переданого ітерабельного об'єкта nodes.
matplotlib.pyplot уже імпортовано для вас як plt.
Ця вправа є частиною курсу
Вступ до аналізу мереж у Python
Інструкції до вправи
- Напишіть функцію
get_nodes_and_nbrs(G, nodes_of_interest), яка вилучає підграф із графаG, що складається зnodes_of_interestі їхніх сусідів.- У першому циклі
forпереберітьnodes_of_interestі додайте поточний вузолnдоnodes_to_draw. - У другому циклі
forпереберіть сусідівnі додайте всіх сусідівnbrдоnodes_to_draw.
- У першому циклі
- Використайте функцію, щоб отримати підграф із
T, який складається з вузлів 29, 38 і 42 (вони є у заздалегідь визначеному спискуnodes_of_interest) та їхніх сусідів. Збережіть результат уT_draw. - Виведіть підграф
T_drawна екран.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
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()