Я пытаюсь реализовать функцию, которая выводит анимированный сюжет.
Если я возьму simple_anim.py(из примеров matplotlib) в качестве базы:
"""
A simple example of an animated plot
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01) # x-array
line, = ax.plot(x, np.sin(x))
def animate(i):
line.set_ydata(np.sin(x+i/10.0)) # update the data
return line,
#Init only required for blitting to give a clean slate.
def init():
line.set_ydata(np.ma.array(x, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init,
interval=25, blit=True)
plt.show()
Эффективно работает.
НО, если я закрою этот код внутри функции (чтобы обеспечить изменение параметров и избежать выполнения явного файла для каждого возможного значения параметра):
"""
A simple example of an animated plot
"""
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
def a():
fig, ax = plt.subplots()
x = np.arange(0, 2*np.pi, 0.01) # x-array
line, = ax.plot(x, np.sin(x))
def animate(i):
line.set_ydata(np.sin(x+i/10.0)) # update the data
return line,
#Init only required for blitting to give a clean slate.
def init():
line.set_ydata(np.ma.array(x, mask=True))
return line,
ani = animation.FuncAnimation(fig, animate, np.arange(1, 200), init_func=init,
interval=25, blit=True)
plt.show()
а затем вызовите функцию, график рисунка останется белым. Фактически, он никогда не приходит, чтобы войти в одушевленную функцию.
Я знаю, что мне не хватает информации, и почему она не работает. Кто-нибудь может дать мне несколько советов?
Большое спасибо,
Andrés