1 回答
TA贡献2051条经验 获得超10个赞
你必须使用FuncAnimation。这将是您的示例的实现 -
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time
fig=plt.figure()
ax1=fig.add_subplot(1,1,1)
x=list(range(20))
y=[n*2 for n in x]
def animate(i):
ax1.clear()
ax1.scatter(x[:i],y[:i])
plt.autoscale(enable=True, axis='both')
ani = FuncAnimation(fig, animate, interval=100)
plt.show()
更新
为了处理无法在数组中预先计算的数据,如上所示,您可以使用 FuncAnimation 的 frames 参数,如下所示 -
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.animation import FuncAnimation
import time
fig=plt.figure()
ax1=fig.add_subplot(1,1,1)
x=[]
y=[]
def frames():
for i in range(20):
yield i, i*2
def animate(args):
ax1.clear()
x.append(args[0])
y.append(args[1])
ax1.scatter(x, y)
plt.autoscale(enable=True, axis='both')
ani = FuncAnimation(fig, animate, frames=frames, interval=100)
plt.show()
添加回答
举报
