matplotlib
có mô-đun animation
để thực hiện điều đó. Tuy nhiên, các ví dụ được cung cấp trên trang web sẽ không chạy như trong sổ ghi chép; bạn cần phải thực hiện một vài chỉnh sửa để làm cho nó hoạt động.
Dưới đây là ví dụ về trang bên dưới được sửa đổi để hoạt động trong sổ ghi chép (sửa đổi trong đậm).
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
from matplotlib import rc from IPython.display import HTML
fig, ax = plt.subplots()
xdata, ydata = [], []
ln, = plt.plot([], [], 'ro', animated=True)
def init():
ax.set_xlim(0, 2*np.pi)
ax.set_ylim(-1, 1)
return ln,
def update(frame):
xdata.append(frame)
ydata.append(np.sin(frame))
ln.set_data(xdata, ydata)
return ln,
ani = FuncAnimation(fig, update, frames=np.linspace(0, 2*np.pi, 128), init_func=init, blit=True) rc('animation', html='html5') ani # plt.show() # not needed anymore
Lưu ý rằng hoạt ảnh trong sổ tay được thực hiện qua phim và bạn đã cấu hình để sử dụng ffmpeg và matplotlib.
Bạn có thể thêm giá trị x hợp lý không? Tôi đã thử ví dụ của bạn với một phạm vi đơn giản (100) và numpy.arange (0, 2 * pi, 0,01), nhưng không tạo ra một đầu ra tốt đẹp. Ngoài ra có vẻ như bạn đang thiếu một số nhập khẩu để chạy mã này như là –
Nhận xét này là một vài năm sau đó: ** để tránh nhấp nháy ** đặt 'clear_output (True)' (IPython 2.0.0) –
Cảm ơn @eldad! Tôi nên cập nhật điều này một lần nữa :) –