Веб-график в реальном времени от получения данных
Я периодически получаю данные с сервера (с библиотечным сокетом), скажем, каждую секунду. И я хочу создать несколько живых веб-графиков из этих данных только с помощью Python. У меня есть этот код прямо сейчас
count_of_data = 100
X = deque(maxlen = count_of_data)
X.append(1)
Y = deque(maxlen = count_of_data)
Y.append(1)
app = dash.Dash(__name__)
app.layout = html.Div(
[
dcc.Graph(id = 'live-graph', animate = True),
dcc.Interval(
id = 'graph-update',
interval = 1000,
n_intervals = 0
),
]
)
@app.callback(
Output('live-graph', 'figure'),
[ Input('graph-update', 'n_intervals') ]
)
def update_graph_scatter(n):
X.append(X[-1]+1)
Y.append(random.randint(0, 100)) #this should take data from server
data = plotly.graph_objs.Scatter(
x=list(X),
y=list(Y),
name='Scatter',
mode= 'lines+markers'
)
if max(X) < count_of_data:
return {'data': [data],
'layout' : go.Layout(xaxis=dict(range=[0, 100]),yaxis = dict(range = [0, 100]),)}
else:
return {'data': [data],
'layout' : go.Layout(xaxis=dict(range=[min(X), max(X)]),yaxis = dict(range = [0, 100]),)}
if __name__ == '__main__':
app.run_server()
Как я могу преобразовать его в функцию, которая обновляет график на веб-сайте каждый раз, когда я ее вызываю? Эту функцию я хотел бы использовать несколько раз - создавать больше графиков на одном веб-сайте - просто уверен, что это будет возможно.