我试图通过绘制一个简单的圆来了解Matplotlib.animation的工作原理,但是我不明白我在做什么错
import numpy as np
from matplotlib import pyplot as plt
from matplotlib import animation
fig = plt.figure()
ax = plt.axes(xlim=(-10,10),ylim=(-10,10))
line, = ax.plot([], [],)
def init():
line.set_data([], [])
return line,
def animate(i):
x = 3*np.sin(np.radians(i))
y = 3*np.cos(np.radians(i))
line.set_data(x, y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init, frames=360, interval=20, blit=True)
plt.show()
它什么也没画,我也不知道为什么。
答案 0 :(得分:0)
x和y必须是值数组才能绘制直线。
您似乎在动画函数中创建了单个浮点。
如果要显示逐渐出现的圆圈,一种方法是在开始时创建X和Y值数组,也许是从弧度值数组中明确创建,如下所示:
rads = np.arange(0, 2*np.pi, 0.01)
x = 3*np.sin(rads)
y = 3*np.cos(rads)
然后以动画形式,仅将x和y数组的一部分分配给行数据。
line.set_data(x[0:i], y[0:i])
一个完整的圆圈的步数将不再是360,而是2Pi / 0.01。
您可以更改间隔的大小,或更改动画帧的数量以进行调整。