Веб-график в реальном времени от получения данных

Я периодически получаю данные с сервера (с библиотечным сокетом), скажем, каждую секунду. И я хочу создать несколько живых веб-графиков из этих данных только с помощью 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()

Как я могу преобразовать его в функцию, которая обновляет график на веб-сайте каждый раз, когда я ее вызываю? Эту функцию я хотел бы использовать несколько раз - создавать больше графиков на одном веб-сайте - просто уверен, что это будет возможно.

0 ответов

Другие вопросы по тегам