我想通过Matplotlib在Python中逐点绘制正弦波,为此,每个点每隔 x 毫秒添加一个正弦波,以获得平滑的绘图动画
这是我的尝试:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
from math import sin
fig, ax = plt.subplots()
x = [0]
line, = ax.plot(x, np.asarray(0))
def animate(i):
x.append(x[-1]+0.04)
line.set_xdata(np.asarray(x)*2*np.pi/5)
line.set_ydata(np.sin(np.asarray(x)*2*np.pi/5))
plt.draw()
def init():
line.set_ydata(np.ma.array(x, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, 10, init_func=init, interval=40, blit=True)
plt.show()
提出了什么:
RuntimeError: The animation function must return a sequence of Artist objects.
我错了什么?在您看来,什么是获得这种效果的最有效方法?
PS时间轴应保持固定而不能移动,因此它应该比图
更宽