2016-07-22 3 views
0

Hallo Leute Ich bin ein ziemlich Neuling in Python/Matplotlib.Wie ist das Funktionsargument in der Matplotlib-Animation definiert?

Ich habe Mühe, den folgenden Animationscode auf der Matplotlib-Website zu verstehen. Wie wird das Daten Argument in den def aktualisiert definiert, wenn diese Funktion in animation.FuncAnimation genannt wird whithout alle Daten als Input-Parameter angeben?

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() 

Antwort

1

data_gen ist ein Generator, der für jeden Animationsrahmen, wird ein Array von 10 Zufallswerte ergeben. Das von data_gen zurückgegebene Array wird an die update-Funktion als erstes Eingabeargument übergeben.

Wenn Sie FuncAnimation mit dem fargs kwarg genannt, könnten Sie auch zusätzliche Eingaben an die update Funktion übergeben.

def update(data, scale): 
    line.set_ydata(scale * data) 
    return line 

animation.FuncAnimation(fig, update, data_gen, fargs=(100,), interval=100) 
+0

Danke Suever, ich frage mich ... gibt es eine Möglichkeit, Animation in viel einfacherer Weise zu generieren? Wie in der GNU-Oktave, wenn Sie nur aufeinanderfolgende Aufrufe zum Plotten (x, y) machen? –

+0

@PintoDoido Ja, Sie können. [hier ist ein Beitrag] (http://stackoverflow.com/questions/4098131/how-to-update-a-plot-in-matplotlib) mit einigen Möglichkeiten, das zu erreichen – Suever

Verwandte Themen