如何在matplotlib动画中定义函数参数?

时间:2016-07-22 16:12:54

标签: python animation matplotlib

大家好我是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()

1 个答案:

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