xdata=[]
foriin range(20):
xdata.append(-0.4)
def.drawing(xdata):
fig, ax=plt.subplots()
ydata= []
Ln, ax.plot(r1 [],ro')
definit():
ax.set_xlim(,1)
ax.set_ylim(-0.3,-0.5)
return Ln
defanimate(i):
Xdata.append(i)
ydata =np.arange(,1.05,0.05)
Ln.set_data(xdata,ydata)
return Ln
ani = FuncAnimation(fig
animate
frames=xdata
init_func=init
bit=rue
plt.show()
drawing(xdata)
【以下回答由 GPT 生成】
这段代码有几个问题,让我们一步步来解决它们。
首先,我们需要导入一些必要的库,包括matplotlib
和numpy
:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
接下来,我们注意到在drawing
函数中,我们定义了xdata
作为一个空的列表,并希望往其中添加元素。然而,在创建动画时,我们将xdata
作为帧来使用,这是不正确的。我们应该使用range(20)
作为帧。
def drawing():
fig, ax = plt.subplots()
ydata = []
Ln, = ax.plot([], [])
xdata = range(20) # 修改这行代码
...
然后,在animate
函数中,我们需要将新的xdata
添加到xdata
列表中。但是,我们应该使用extend
方法而不是append
方法。这样,xdata
列表将包含从0
到19
的所有值。
def animate(i):
xdata.extend([i]) # 修改这行代码
...
最后,我们注意到在animate
函数中,我们创建了一个新的ydata
列表,这是不必要的。我们只需要使用np.arange
来生成ydata
即可。
def animate(i):
ydata = np.arange(0, 1.05, 0.05) # 修改这行代码
...
下面是完整的修复后的代码:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
def drawing():
fig, ax = plt.subplots()
ydata = []
Ln, = ax.plot([], [])
xdata = range(20)
def init():
ax.set_xlim(0, 1)
ax.set_ylim(-0.3, -0.5)
return Ln
def animate(i):
xdata.extend([i])
ydata = np.arange(0, 1.05, 0.05)
Ln.set_data(xdata, ydata)
return Ln
ani = FuncAnimation(fig,
animate,
frames=xdata,
init_func=init,
blit=True)
plt.show()
drawing()
希望这可以帮助到你!如果有任何问题,请随时向我提问。
【相关推荐】