Phân phối độ trung tâm bậc của các nút người dùng
Trong bài này và bài kế tiếp, bạn sẽ ôn tập lần cuối các nội dung từ khóa học trước. Nhiệm vụ của bạn là vẽ phân phối độ trung tâm bậc cho từng phân hoạch nút trong phiên bản đồ thị hai phía của mạng cộng tác GitHub. Ở đây, bạn sẽ làm điều đó cho phân hoạch 'users'. Ở bài tiếp theo, bạn sẽ làm cho phân hoạch 'projects'.
Hàm bạn đã viết trước đó, get_nodes_from_partition(), đã được nạp sẵn. Nhắc lại: "độ trung tâm bậc" là một thước đo tầm quan trọng của nút, còn "phân phối độ trung tâm bậc" là danh sách các điểm số độ trung tâm bậc cho tất cả các nút trong đồ thị. Ở một vài bài trước, khi bạn tạo biểu đồ circos, chúng tôi đã tính sẵn các độ trung tâm bậc cho bạn. Giờ bạn sẽ tự thực hành làm việc này!
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
- Import
matplotlib.pyplotvới bí danhplt. - Dùng hàm
get_nodes_from_partition()từ bài trước để lấy danh sáchuser_nodestương ứng với các nút'users'củaG. - Dùng hàm
nx.degree_centrality()để tính độ trung tâm bậc cho từng nút trongG. Lưu kết quả vàodcs. - Dùng list comprehension để tính độ trung tâm bậc cho từng nút trong
user_nodes. Lưu kết quả vàouser_dcs.- Lưu ý:
dcslà một dictionary, trong đó khóa là các nút. Các nút liên quan ở đây nằm tronguser_nodes. Bạn có thể dùng thông tin này như thế nào để lấy độ trung tâm bậc của các nút người dùng? Dùngnlàm biến lặp.
- Lưu ý:
- Vẽ biểu đồ histogram của phân phối bậc của người dùng bằng
plt.hist()với đầu vào làuser_dcs.
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 matplotlib
____
# Get the 'users' nodes: user_nodes
user_nodes = ____
# Compute the degree centralities: dcs
dcs = ____
# Get the degree centralities for user_nodes: user_dcs
user_dcs = [dcs[____] for n in ____]
# Plot the degree distribution of users_dcs
plt.yscale('log')
plt.hist(____, bins=20)
plt.show()