Hey, I am trying to use Dash Interval to periodically update a map. However, I am having trouble even getting a minimal viable example working. I tried the code below, based on here, but the graph in the browser does not update continuously. It does update when I refresh the browser, but even then, very slowly.
(NOTE: I was having the same issues w/ the example on the Dash website here)
Please help, Thanks!
import dash
from dash.dependencies import Output, Input
import dash_core_components as dcc
import dash_html_components as html
import random
from collections import deque
X = deque(maxlen=20)
X.append(1)
Y = deque(maxlen=20)
Y.append(1)
app = dash.Dash(__name__)
app.layout = html.Div(
[
dcc.Graph(id='live-graph', animate=True),
dcc.Interval(
id='graph-update',
interval=1*10
),
]
)
@app.callback(Output('live-graph', 'figure'),
[Input('graph-update', 'interval')])
def update_graph_scatter(i):
X.append(X[-1]+1)
Y.append(Y[-1]+Y[-1]*random.uniform(-0.1,0.1))
data = {
'x': list(X),
'y': list(Y),
'name': 'Scatter',
'mode': 'lines+markers'
}
return {'data': [data],
'layout' : {'xaxis': dict(range=[min(X),max(X)]),
'yaxis': dict(range=[min(Y),max(Y)])}
}
if __name__ == '__main__':
app.run_server(debug=True)