Interactive plotly map

Can I get selected point from plotly map using streamlit like same example done by dash by callback function full code already attached below :
#control selection from map by the lasso and square selection tools provided by the Plotly map
@app.callback(
Output(‘selected-wells-output’, ‘children’),
[Input(“curves-dropdown”, “value”),
Input(‘datasets-checkbox’, ‘value’),
Input(‘map-plot’, ‘selectedData’)]
)
def update_output(curves, datasets, selected_items):

# return the well names for all wells that match the criterion
curve_mask = locations_df[curves].values.all(axis=1)
dff = locations_df[curve_mask]
dff = dff[dff['Dataset'].isin(datasets)]
# now filter by wells that have been selected in the image.
all_wells = dff['WELL'] # initialize to all of the wells
lasso_wells = None

# now iterate over selected items, and get the relevant point data
# need to do some checks to make sure valid data selected
if selected_items is not None:
    for selected_item in [selected_items]:
        if selected_item and selected_item['points']:
            # get a list of the selected well names
            lasso_wells = [p['customdata'][0] for p in selected_item['points']]

select_mask = dff['WELL'].isin(lasso_wells if lasso_wells else all_wells)
dff = dff[select_mask]

num_wells = dff.shape[0]
well_names = dff['WELL'].values

output_text = "\nYou have selected {} wells.\n\n".format(num_wells)
well_list_text = ", ".join("'{}'".format(well_name) for well_name in well_names)
well_list_text = "selected_wells = ["+well_list_text + "]"
return output_text + well_list_text
1 Like

Hi @Ahmed_Salem, and welcome to the Streamlit Commnity! :balloon:

st.plotly_chart should help here:

st.plotly_chart(data)

Let me know how it goes! :slight_smile:

Best,
Charly