plotly da sh обновлять данные при нажатии на гистограмму - PullRequest
1 голос
/ 08 мая 2020

У меня есть столбчатая диаграмма 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)

...