это мой вопрос: если я получу код с реализацией funcAnimation (финансовое поле, получение данных с биржи и прямой график каждый интервал времени) ... как я могу запускать функцию каждый интервал оптимизированным способом?
Представьте, что у нас есть пример кода:
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.animation as animation
x = np.linspace(-6, 6)
tmax = 1
tmin = -1
t = np.linspace(-1, 1)
def f(x, t):
term = (np.exp(-1*(x-3*t)**2))*np.sin(3*np.pi*(x-t))
return term
y = f(x, tmax)
lines = plt.plot(x, y)
plt.axis([x[0], x[-1], -1, 1])
plt.xlabel('x')
plt.ylabel('f')
counter = [0]
def animate(ts):
y = f(x, ts)
lines[0].set_ydata(y)
plt.legend(['ts=%4.2f' % ts])
#plt.savefig('tmp_%04d.png' % counter)
counter[0] += 1
anim = animation.FuncAnimation(plt.gcf(), animate, frames=t, interval = 1000)
plt.show()
В этом случае это может быть настолько просто, когда я запускаю его, код застревает в замкнутом цикле, вызванном funcAnimation.
Что я делаю?поместите функцию для запуска внутри функции анимации.Но ... это хороший способ продолжить?
Здесь у нас есть часть моего кода и один простой пример:
fig = plt.figure(figsize=(16,18),facecolor="#232a3b")
def animate(i):
say(5)
graphData('BTC/USDT','1m',8,13,21)
def say(i):
print('Hello World ' + str(i))
while True:
#pair = input('Crypto pair to plot: ')
#timeframe = input('Enter timeframe: ')
say(5)
ani = animation.FuncAnimation(fig, animate,interval=60000)
plt.show()