画圆的动画

时间:2019-05-21 18:36:17

标签: python matplotlib animation geometry drawing

我试图通过绘制一个简单的圆来了解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()

它什么也没画,我也不知道为什么。

1 个答案:

答案 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。

您可以更改间隔的大小,或更改动画帧的数量以进行调整。