#python #livegraph
Вопрос:
Я периодически получаю данные с сервера (с библиотечным сокетом), скажем, каждую секунду. И я хочу сделать несколько веб-графиков в реальном времени из этих данных, только с помощью 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) lt; 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()
Как я могу преобразовать его в функцию, которая обновляет график на веб-сайте каждый раз, когда я его вызываю? Эту функцию я хотел бы использовать несколько раз — создавать больше графиков на одном веб — сайте-просто для уверенности, что это будет возможно.