2016-07-22 4 views
0

こんにちは皆、私はpython/matplotlibのかなり初心者です。関数引数はmatplotlibアニメーションでどのように定義されていますか?

私はmatplotlibウェブサイトの次の動画コード​​を理解するのに苦労しています。どのようにデータ引数があるDEF、この関数は、入力パラメータとして任意のデータを指定whithout 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

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) 
+0

ありがとう、私は疑問に思っていました...もっと簡単な方法でアニメーションを生成する方法はありますか? GNUオクターブのように、plot(x、y)を連続して呼び出すだけでいいのですか? –

+0

@PintoDoidoはいできます。 [これは投稿です](http://stackoverflow.com/questions/4098131/how-to-update-a-plot-in-matplotlib) – Suever

関連する問題