1. Học hỏi
  2. /
  3. Khoa Học
  4. /
  5. Phân tích mạng nâng cao với Python

Connected

Bài tập

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!

Hướng dẫn

100 XP
  • Import matplotlib.pyplot với bí danh plt.
  • Dùng hàm get_nodes_from_partition() từ bài trước để lấy danh sách user_nodes tương ứng với các nút 'users' của G.
  • Dùng hàm nx.degree_centrality() để tính độ trung tâm bậc cho từng nút trong G. Lưu kết quả vào dcs.
  • 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ào user_dcs.
    • Lưu ý: dcs là một dictionary, trong đó khóa là các nút. Các nút liên quan ở đây nằm trong user_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ùng n làm biến lặp.
  • 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.