Plotly-Dash: как напечатать исходные данные линейчатого графика?

#python #plotly-dash #plotly-python

#python #plotly-dash #plotly-python

Вопрос:

У меня есть линейчатый график в моем приложении Dash. Я хочу печатать данные при наведении курсора всякий раз, когда я навожу курсор на определенную строку.

Я попробовал свойство hoverData go.Bar () в моем обратном вызове.

 data = go.Bar(x=dict.keys(), y=dict.values(), name=ver, text=dict.values(), textposition='auto')

layout = go.Layout(barmode='group', hovermode='closest')

html.Div([dcc.Graph(id='main_graph', figure={'data': data, 'layout': layout}
)], style={'width':'70%', 'float':'left'})

html.Div([html.Pre(id='hover')], style={'width':'30%', 'float':'right'})

@app.callback(Output('hover', 'children'), [Input('main_graph', 'hoverData')])
def disp_hover_data(hover_data):
    print(hover_data)
  

Ожидаемый результат: данные о наведенной строке

Фактический результат: Отсутствует

Ответ №1:

Вам нужно вернуть hover_data объект вместо того, чтобы печатать его.

 @app.callback(Output('hover', 'children'), [Input('main_graph', 'hoverData')])
def disp_hover_data(hover_data):
    return hover_data
  

Прямо сейчас, если вы проверите журнал вашего «сервера», то есть терминал, на котором он запущен, вы увидите, что hover_data напечатан там. Если вы это исправите, это должно появиться в hover .