RangeSlider
は、それは(もダッシュコアコンポーネントである)Graph
の属性ではありません、Dash Core Componentです。ここで
はシンプルなアプリのレイアウトです:
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
の値が変更に呼び出されるコールバックを定義する必要があります。これは、_update_graph
が呼び出されるInput
です。 複数の入力を持つことができます(例:Dropdown
、RangeSlider
など)。
Output
は常に1つです。この例では、Graph
コンポーネントの属性はfigure
です。
# 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 Coreコンポーネントによって、いくつかのコンポーネントが更新される可能性があります。たとえば、RangeSlider
を入力すると、Label
が変更される可能性があります。
# 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])
質問に使用しているコードを追加してください。 URLのコードが変更されることがあります。 –
コードを見ることができるリンクをクリックするとPlotlyのWebサイト(Range SliderとSelector in Python)の例です。私はsthを作ろうとしている。ダッシュと同じように。 – Ali
動作しないコードがなければ、正しい解決策を推測することは不可能です。 –