Is there way to update interval by slider in dash?

Viewed 974

As I wrote in title - I have page with graph and slider

trigger_page = html.Div(
[
    dcc.Textarea(value='Triggers'),
    dcc.Graph(id='trigger_graph', animate=True),
    dcc.Slider(id='my-slider', min=0, max=10000, value=1000, updatemode='drag'),
    dcc.Interval(id='trigger_graph_update',interval=1000),
]
)

How to write callback and method for updating value in dcc.interval by slider? My method with callback:

@app.callback(Output('trigger_graph', 'figure'), [Input('trigger_graph_update', 'n_intervals')])
def update_graph(value):
    global trigger_rate_array_x
    global trigger_rate_array
    trigger_rate_array=[]
    trigger_rate_array_x=[]
    triggerFiller()
    X = trigger_rate_array_x
    Y = trigger_rate_array

    data = plotly.graph_objs.Scatter(
        x=list(X),
        y=list(Y),
        name='Scatter',
        mode='lines+markers'
)

return {'data': [data], 'layout': go.Layout(xaxis=dict(range=[min(X), max(X)]), yaxis=dict(range=[min(Y), max(Y)])),}
1 Answers

You can do this easily by creating a callback with Slider as Input and Interval as output:

@app.callback(
    Output("trigger_graph_update", "interval"),
    [Input("my-slider", "value")]
)
def update_interval(value):
    return value    
Related