Plotly Dash вкладки и интерактивные графики - PullRequest
0 голосов
/ 08 ноября 2018

В моем тире у меня есть набор вкладок с графиком внутри. Каждая вкладка имеет один график. У меня есть обратный вызов «clickdata», который запускает функцию каждый раз, когда вы нажимаете на один из графиков, и он работает, пока я не изменяю вкладку. Но как только я меняю вкладку, обратный вызов clickdata для графиков перестает работать. Есть идеи?

Если это поможет, это структура моего кода:

    app = dash.Dash(__name__)

    app.layout = html.Div([
                            ... #deleted code
                          html.Button(id='Calculate_button',
                                    n_clicks=0,
                                    children='Calculate',
                                    style={'fontSize':18,
                                           'width':'100%'}),
                        html.Div([
                            dcc.Tabs(id="tabs",
                                     value='tab-1',
                                     children=[dcc.Tab([dcc.Graph(id='LapLabels',
                                                                  style={'height':1000,
                                                                         'paddingTop':30})],
                                                        label='Lap Labels',
                                                        value='tab-1',
                                                        id='tab-1'),
                                                dcc.Tab([dcc.Graph(id='RacePlot',
                                                                  style={'height':1000,
                                                                         'paddingTop':30})],
                                                        label='Raceplot', 
                                                        value='tab-2',
                                                        id='tab-2'),])])])

    @app.callback(Output('LapLabels','figure'),
                    [Input('Calculate_button','n_clicks')],
                    [State('input1','value'),
                    State('input2','value'),
                    State('csvcontainer','value')])
    def update_Labels(n_clicks,Traffic_Trigger,Slow_Percent2best,path):
        return LapLabels(Traffic_Trigger,Slow_Percent2best,path) #this function returns a figure

@app.callback(Output('Calculate_button','n_clicks'),
                 [Input('LapLabels','clickData'),
                  Input('RacePlot','clickData')],
                 [State('csvcontainer','value')])
def modsc_Labels(hoverData,hoverDataRplot,path):
    return myfunc(hoverData,hoverDataRplot,path) #this function updates the file that LapLabels reads   
...