是Dash Core Component,它不是(它也是 Dash Core Component)RangeSlider
的属性。Graph
这是一个简单的应用程序布局:
import dash_core_components as dcc
app.layout = html.Div(children=[
html.H1('My Dash App'),
html.Div(
[
html.Label('From 2007 to 2017', id='time-range-label'),
dcc.RangeSlider(
id='year_slider',
min=1991,
max=2017,
value=[2007, 2017]
),
],
style={'margin-top': '20'}
),
html.Hr(),
dcc.Graph(id='my-graph')
])
现在您只需要定义一个回调,每次RangeSlider
更改值时都会调用该回调。这是Input
导致_update_graph
被调用的原因。您可以有多个输入(例如 a Dropdown
、 anotherRangeSlider
等)。
Output
总是一个。在此示例中,它是组件的figure
属性Graph
。
# the value of RangeSlider causes Graph to update
@app.callback(
output=Output('my-graph', 'figure'),
inputs=[Input('year_slider', 'value')]
)
def _update_graph(year_range):
date_start = '{}-01-01'.format(year_range[0])
date_end = '{}-12-31'.format(year_range[1])
# etc...
一个 Dash 核心组件可能会导致多个组件更新。例如,aRangeSlider
可能导致 aLabel
发生变化。
# the value of RangeSlider causes Label to update
@app.callback(
output=Output('time-range-label', 'children'),
inputs=[Input('year_slider', 'value')]
)
def _update_time_range_label(year_range):
return 'From {} to {}'.format(year_range[0], year_range[1])