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

Trực quan hóa độ kết nối

Ở đây, bạn sẽ trực quan hóa cách độ kết nối của các nút có kết nối cao nhất thay đổi theo thời gian. Danh sách các giá trị kết nối cao nhất, top_connected, từ bài tập trước đã được nạp sẵn.

Nhớ defaultdict bạn đã dùng ở Chương 1 chứ? Bạn sẽ dùng một defaultdict nữa trong bài này! Như Eric đã đề cập trong video, defaultdict được ưu tiên ở đây vì một từ điển Python thông thường sẽ ném ra KeyError nếu bạn cố lấy một phần tử với khóa chưa có trong từ điển.

Bài này sẽ sử dụng các vòng lặp for lồng nhau, tức là bạn có một vòng lặp for bên trong một vòng lặp for khác.

Bài tập này là một phần của khóa học

Phân tích mạng nâng cao với Python

Xem khóa học

Hướng dẫn bài tập

  • Khởi tạo một defaultdict của các danh sách rỗng, gọi là connectivity.
  • Duyệt qua top_connected bằng một vòng lặp for, và trong thân của vòng lặp for bên ngoài này, lại tiếp tục duyệt qua Gs. Bên trong vòng lặp lồng nhau:
    • Các khóa của connectivity sẽ là các nút n trong top_connected, và các giá trị sẽ là danh sách điểm độ kết nối. Do đó, bạn cần thêm len(list(G.neighbors(n))) vào connectivity[n].
  • Duyệt qua connectivity bằng .items() và vẽ độ kết nối của từng nút bằng cách truyền conn vào plt.plot().

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.

# Import necessary modules
import matplotlib.pyplot as plt
from collections import defaultdict

# Create a defaultdict in which the keys are nodes and the values are a list of connectivity scores over time
connectivity = ____
for n in ____:
    for g in ____:
        connectivity[____].____(len(____))

# Plot the connectivity for each node
fig = plt.figure() 
for n, conn in ____: 
    plt.plot(____, label=n) 
plt.legend()  
plt.show()
Chỉnh sửa và Chạy Mã