У меня есть столбчатая диаграмма Plotly da sh и таблица данных, я хочу, чтобы данные обновлялись при щелчке по одной из столбчатых диаграмм.
В настоящее время я читаю данные щелчка по выбранной полосе в display_click_data () и используя это значение для фильтрации фрейма данных, с помощью которого я хочу обновить таблицу данных. Проблема в том, что я не уверен, как вернуть фрейм данных и обновить данные. Нужна ли мне для этого отдельная функция update_table () или я могу просто вернуть ее из функции update_click_data () и воссоздать из нее datatable? или есть лучший способ сделать это?
app = DjangoDash('SimpleExample')
df1 = get_spec_dataframe('security')
df_data = get_mostfrequent_data_all()
most_frequent_words = df_data[0][:30]
most_frequent_words_values = df_data[1][:30]
df = get_dataframe()
app.layout = html.Div([
dcc.Graph(
id='basic-interactions',
figure={
'data': [
{
'x': most_frequent_words,
'y': most_frequent_words_values,
'name': 'Trace 1',
'mode': 'markers',
'type': 'bar'
}
],
'layout': {
'clickmode': 'event+select'
}
}
),
html.Div(className='row', children=[
html.Div([
html.Pre(id='click-data'),
dash_table.DataTable(id='table',columns=[{"name": i, "id": i} for i in df.columns],data=df.to_dict('records')),
], className='three columns'),
])
])
@app.callback(
Output('click-data', 'children'),
[Input('basic-interactions', 'clickData')])
def display_click_data(clickData):
if clickData != None:
label = str(clickData['points'][0]['x'])
else:
label = "security"
df = get_spec_dataframe(label)
return (df)