การแสดงภาพ Connectivity
ในแบบฝึกหัดนี้ จะได้แสดงภาพว่า connectivity ของโหนดที่มีการเชื่อมต่อมากที่สุดเปลี่ยนแปลงอย่างไรตามเวลา รายการค่า connectivity สูงสุด top_connected จากแบบฝึกหัดก่อนหน้าได้ถูกโหลดไว้แล้ว
จำ defaultdict ที่ใช้ในบทที่ 1 ได้ไหม? แบบฝึกหัดนี้จะใช้ defaultdict อีกครั้ง เนื่องจาก defaultdict เหมาะกว่า dictionary ทั่วไปในกรณีนี้ เพราะ dictionary ปกติจะเกิด KeyError หากพยายามเข้าถึง key ที่ยังไม่มีอยู่
แบบฝึกหัดนี้จะใช้ลูป for แบบซ้อนกัน กล่าวคือ มีลูป for หนึ่งอยู่ภายในอีกลูปหนึ่ง
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
การวิเคราะห์เครือข่ายระดับกลางใน Python
คำแนะนำการฝึกหัด
- กำหนดค่าเริ่มต้น
defaultdictของ list ว่างเปล่า ตั้งชื่อว่าconnectivity - วนซ้ำผ่าน
top_connectedด้วยลูปforและภายในลูปนอกนี้ ให้วนซ้ำผ่านGsอีกครั้ง ภายในลูปซ้อนนี้:- key ของ
connectivityควรเป็นโหนดnในtop_connectedและค่า (values) ควรเป็น list ของคะแนน connectivity ดังนั้นให้ appendlen(list(G.neighbors(n)))ไปยังconnectivity[n]
- key ของ
- วนซ้ำผ่าน
connectivityโดยใช้.items()แล้วพล็อต connectivity ของแต่ละโหนดโดยส่งconnให้plt.plot()
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# 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()