Vẽ số lượng thay đổi cạnh theo thời gian
Giờ bạn sẽ tạo một vài biểu đồ! Tất cả các danh sách bạn đã tạo trước đó cũng đã được nạp sẵn cho bạn trong bài tập này. Đừng lo về một số đoạn mã matplotlib trông “hơi cao siêu” bên dưới: đã có chú thích giúp bạn hiểu chuyện gì đang diễn ra.
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
- Vẽ số lượng cạnh được thêm theo thời gian. Để làm điều này:
- Dùng list comprehension để lặp qua
addedvà tạo danh sách tênedges_added. Biểu thức đầu ra của list comprehension làlen(g.edges()), trong đóglà biến vòng lặp của bạn. - Truyền danh sách
edges_addedvàoax1.plot().
- Dùng list comprehension để lặp qua
- Vẽ số lượng cạnh bị loại bỏ theo thời gian. Một lần nữa, dùng list comprehension, lần này lặp qua
removedthay vìadded. - Vẽ các thay đổi theo tỉ lệ theo thời gian bằng cách truyền danh sách đó làm đối số cho
ax2.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 matplotlib
import matplotlib.pyplot as plt
fig = plt.figure()
ax1 = fig.add_subplot(111)
# Plot the number of edges added over time
edges_added = [____(____) for ____ in ____]
plot1 = ax1.plot(____, label='added', color='orange')
# Plot the number of edges removed over time
edges_removed = [____(____) for ____ in ____]
plot2 = ax1.plot(____, label='removed', color='purple')
# Set yscale to logarithmic scale
ax1.set_yscale('log')
ax1.legend()
# 2nd axes shares x-axis with 1st axes object
ax2 = ax1.twinx()
# Plot the fractional changes over time
plot3 = ax2.plot(____, label='fractional change', color='green')
# Here, we create a single legend for both plots
lines1, labels1 = ax1.get_legend_handles_labels()
lines2, labels2 = ax2.get_legend_handles_labels()
ax2.legend(lines1 + lines2, labels1 + labels2, loc=0)
plt.axhline(0, color='green', linestyle='--')
plt.show()