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
Hướng dẫn bài tập
- Khởi tạo một
defaultdictcủa các danh sách rỗng, gọi làconnectivity. - Duyệt qua
top_connectedbằng một vòng lặpfor, và trong thân của vòng lặpforbên ngoài này, lại tiếp tục duyệt quaGs. Bên trong vòng lặp lồng nhau:- Các khóa của
connectivitysẽ là các nútntrongtop_connected, và các giá trị sẽ là danh sách điểm độ kết nối. Do đó, bạn cần thêmlen(list(G.neighbors(n)))vàoconnectivity[n].
- Các khóa của
- Duyệt qua
connectivitybằng.items()và vẽ độ kết nối của từng nút bằng cách truyềnconnvàoplt.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()