Bắt đầu ngayBắt đầu miễn phí

Đồ 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

Xem khóa học

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ị G bao gồm các nodes_of_interest và các láng giềng của chúng.
    • Trong vòng lặp for đầu tiên, lặp qua nodes_of_interest và thêm node hiện tại n vào nodes_to_draw.
    • Trong vòng lặp for thứ hai, lặp qua các láng giềng của n, và thêm tất cả láng giềng nbr vào nodes_to_draw.
  • Dùng hàm này để trích xuất đồ thị con từ T bao gồm các node 29, 38 và 42 (nằm trong danh sách đã định nghĩa sẵn nodes_of_interest) và các láng giềng của chúng. Lưu kết quả vào T_draw.
  • Vẽ đồ thị con T_draw lê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()
Chỉnh sửa và Chạy Mã