Bắt đầu ngayBắt đầu miễn phí

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

Xem khóa học

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 added và tạo danh sách tên edges_added. Biểu thức đầu ra của list comprehension là len(g.edges()), trong đó g là biến vòng lặp của bạn.
    • Truyền danh sách edges_added vào ax1.plot().
  • 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 removed thay 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()
Chỉnh sửa và Chạy Mã