Đồ thị con I
Sẽ có lúc bạn chỉ muốn phân tích một tập con các node trong một mạng. Để làm vậy, bạn có thể sao chép chúng sang một đối tượng đồ thị khác bằng G.subgraph(nodes), hàm này trả về một đối tượng graph mới (cùng kiểu với đồ thị gốc) bao gồm iterable nodes được truyền vào.
matplotlib.pyplot đã được nhập sẵn với tên plt.
Bài tập này là một phần của khóa học
Nhập môn Phân tích Mạng bằng Python
Hướng dẫn bài tập
- Viết hàm
get_nodes_and_nbrs(G, nodes_of_interest)để trích xuất đồ thị con từ đồ thịGbao gồm cácnodes_of_interestvà các láng giềng của chúng.- Trong vòng lặp
forđầu tiên, lặp quanodes_of_interestvà thêm node hiện tạinvàonodes_to_draw. - Trong vòng lặp
forthứ hai, lặp qua các láng giềng củan, và thêm tất cả láng giềngnbrvàonodes_to_draw.
- Trong vòng lặp
- Dùng hàm này để trích xuất đồ thị con từ
Tbao gồm các node 29, 38 và 42 (nằm trong danh sách đã định nghĩa sẵnnodes_of_interest) và các láng giềng của chúng. Lưu kết quả vàoT_draw. - Vẽ đồ thị con
T_drawlên màn hình.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
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()