@lou80 wrote:
Hi,
I’m trying to connect two graph, one with point on a map and another one with corresponding point on a scatter plot.
My goal is that when I move over a point of one of the two graph, the color of the corresponding one on the other graph changesHere is my approach:
html.Div( [ dcc.Graph( id='plot_scatter_point', ), dcc.Graph( id='plot_map_point', ) ] ) @app.callback( [Output("plot_scatter_point", "figure"), Output("plot_map_point", "figure")], [Input("search", "n_clicks"), Input('plot_scatter_point', 'hoverData'), Input('plot_map_point', 'hoverData')], [State("filter1", "value"), State('plot_scatter_point', 'figure'), State('plot_map_point', 'figure')] ) def show_dataframe_price_distrib(n_clicks, hover_plot_scatter_point, hover_plot_map_point, filter1, fig_scatter_point, fig_map_point): if n_clicks is None: raise PreventUpdate if hover_plot_msquare_map is not None: # Change color of corresponding point on 'plot_map_point' figure # Update fig_map_point return fig_scatter_point, fig_map_point if hover_plot_msquare_point is not None: # Change color of corresponding point on 'plot_scatter_point' figure # Update fig_scatter_point return fig_scatter_point, fig_map_point df = ... fig_scatter_point = go.Figure() fig_scatter_point.add_trace(go.Scatter( x=df.date, y=df.price, mode="markers", name="Lines, Markers and Text" )) fig_map_point = go.Figure() fig_map_point.add_trace(go.Scattermapbox( lat=df.latitude, lon=df.longitude, mode='markers', marker=go.scattermapbox.Marker( color=df.price, ), )) return fig_scatter_point, fig_map_point
My questions are :
Is there a better way than returning both figures updated each time the callback is triggered ?
If no, how could I update the map graph and scatter graph ?I tried without success (at the updating stage of the code):
fig_scatter_point.append({'x': ['2014-03-01'], 'y': [5000]})
and
fig_scatter_point.add_trace(go.Scatter( x=['2014-03-01'], y=[120], mode="markers", marker=dict( color='red', size=12, line=dict( color='rgba(255, 0, 0, 0.5)', width=1 ) ), ))
A huge thanks in advance for your help !
Posts: 3
Participants: 2