как сделать график обновления в реальном времени с несколькими трассами в нем? Для каждого временного интервала мне нужно прочитать строку из «tmp.txt» в data ['prof'] и data ['pred'] и обновить в линейном графике.
Я нашел решение для live- обновление здесь (https://pythonprogramming.net/live-graphs-data-visualization-application-dash-python-tutorial/), но не показывает, как @ app.callback для нескольких трасс. Также я узнал, что он использует «Событие», которое устарело.
Моя кодировка следующая, спасибо, если кто-то может мне помочь. Спасибо.
import dash
import dash_daq as daq
import dash_core_components as dcc
import dash_html_components as html
from dash.dependencies import Input, Output
from collections import deque
def read():
with open ("tmp.txt", "r") as f:
for line in f:
data=line.split(',')
return data
i=0
data = { 'prof':deque(maxlen=120), 'pred': deque(maxlen=120) }
external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
app.layout = html.Div(
children=[
dcc.Interval(id='timer', interval=1000),
html.Br(),
html.Div([
dcc.Graph(id='graph')
])
])
@app.callback(Output('graph','figure'), [Input('timer','n_intervals')])
def update_graph():
data=read()
data=read()
X.append(i)
data['prof'].append(float(data[1]))
data['pred'].append(float(data[2]))
figure={
'data':[
{'x':X,'y':CPU['prof'],'type':'scatter','name':'Profiled'},
{'x':X,'y':CPU['pred'],'type':'scatter','name':'Predicted'}
]}
i+=1
return figure
Редактировать: 'tmp.txt' - это файл, постоянно перезаписываемый другой программой. Он имеет только одну строку, как показано ниже: «3,2233 4,33445», 32, 74,0, 0,13, 0,0, 0,0
.