大家好我是python / matplotlib的新手。
我正在努力理解matplotlib网站上的以下动画代码。如果在 中调用此函数, def update 中的 数据 参数是如何定义的animation.FuncAnimation 没有指定任何 数据 作为输入参数?
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
line, = ax.plot(np.random.rand(10))
ax.set_ylim(0, 1)
def update(data):
line.set_ydata(data)
return line,
def data_gen():
while True:
yield np.random.rand(10)
ani = animation.FuncAnimation(fig, update, data_gen, interval=100)
plt.show()
答案 0 :(得分:1)
data_gen
是一个生成器,对于每个动画帧,它将产生一个包含10个随机值的数组。从data_gen
返回的数组是作为第一个输入参数传递给update
函数的数组。
如果您使用fargs
kwarg致电FuncAnimation
,您还可以将其他输入传递给update
功能。
def update(data, scale):
line.set_ydata(scale * data)
return line
animation.FuncAnimation(fig, update, data_gen, fargs=(100,), interval=100)