#python #data-science #plotly-dash #dashboard #plotly-python
Вопрос:
Я хочу создать div, в котором я хочу назвать значения продаж в этом и предыдущем годах, выбрав год(в слайдере) на панели мониторинга, но это выдает ошибку. Могу ли я вывести несколько значений? что я делаю не так ?
html.Div([
html.Div(id = 'text1'),
html.Div(id = 'text2'),
],className='create_container2 three columns')
@app.callback(Output('text1', 'children'),
Output('text2','children')
[Input('select_years', 'value')],)
def update_graph(select_years):
sales8=df.groupby(['Year'])['Sales'].sum().reset_index()
current_year = sales8[(sales8['Year'] == select_years)]['Sales'].sum()
sales9=df.groupby('Year')['Sales'].sum().reset_index()
sales9['PY']=sales9['Sales'].shift(1)
previous_year=sales9[(sales9['Year']==select_years)]['PY'].sum()
return [
html.H6(children='Current Year',id='text1',
style={'textAlign': 'center',
'color': 'white'}),
html.P('${0:,.2f}'.format(current_year),
style={'textAlign': 'center',
'color': 'black',
'fontSize': 15,
'margin-top': '-10px'}),
html.H6(children='Current Year',id='text2',
style={'textAlign': 'center',
'color': 'white'}),
html.P('${0:,.2f}'.format(previous_year),
style={'textAlign': 'center',
'color': 'black',
'fontSize': 15,
'margin-top': '-10px'}),
]
Ответ №1:
я думаю, что в вашем коде есть несколько ошибок
- если у вас более 1 вывода, поместите их в список [] .
- когда вы возвращаете свой вывод, вам нужно иметь такое же количество переменных, как и в списке вывода (в вашем случае 2 списка HTML-элементов).
смотрите код ниже, я его не тестировал, так что я могу что-то пропустить
html.Div([
html.Div(id = 'text1'),
html.Div(id = 'text2'),
],className='create_container2 three columns')
@app.callback([Output('text1', 'children'),
Output('text2','children')],
[Input('select_years', 'value')],)
def update_graph(select_years):
sales8=df.groupby(['Year'])['Sales'].sum().reset_index()
current_year = sales8[(sales8['Year'] == select_years)]['Sales'].sum()
sales9=df.groupby('Year')['Sales'].sum().reset_index()
sales9['PY']=sales9['Sales'].shift(1)
previous_year=sales9[(sales9['Year']==select_years)]['PY'].sum()
return [ #text 1 children
html.H6(children='Current Year',id='text1',
style={'textAlign': 'center',
'color': 'white'}),
html.P('${0:,.2f}'.format(current_year),
style={'textAlign': 'center',
'color': 'black',
'fontSize': 15,
'margin-top': '-10px'})],
[html.H6(children='Current Year',id='text2', #text 2 children
style={'textAlign': 'center',
'color': 'white'}),
html.P('${0:,.2f}'.format(previous_year),
style={'textAlign': 'center',
'color': 'black',
'fontSize': 15,
'margin-top': '-10px'}),
]