Я новичок в программировании на python и решаю эту проблему с графикой.Я пытаюсь сделать так, чтобы данные, которые попадают на сайт, отображались в реальном времени на графике.Если у вас есть какой-либо подход, кроме того, как я обращаюсь с кодом, это будет приветствоваться.
# -*- coding: utf-8 -*-
import websocket
import json
import matplotlib.pyplot as plt
import sys
import matplotlib.animation as animation
reload(sys)
sys.setdefaultencoding("utf-8")
pullData = []
tamanho = []
fig = plt.figure()
ax = plt.axes(xlim=(0), ylim=(0))
line, = ax.plot([], [], lw=2)
def on_open(ws):
json_data = json.dumps({'ticks':'R_100'})
ws.send(json_data)
def on_message(ws, message):
global pullData
global tamanho
data = json.loads(message)
pullData.append(float(data['tick']['quote']))
x = int(len(pullData))
tamanho.append(x)
def init():
line.set_data([], [])
return line,
def animate(i):
global pullData
global tamanho
x = pullData
y = tamanho
line.set_data(x, y)
return line,
anim = animation.FuncAnimation(fig, animate, init_func=init,
frames=200, interval=20, blit=True)
plt.show()
if __name__ == "__main__":
apiUrl = "wss://ws.binaryws.com/websockets/v3?app_id=1089&l=PT"
ws = websocket.WebSocketApp(apiUrl, on_open = on_open,on_message = on_message)
ws.run_forever()