Open
Description
Hello,
I’m trying to catch on_selection events in a faceted figure.
I create a simple faceted figure, and attach an on_selection handler to all traces.
As an output, I simply print the customdata, and the selector.xrange.
When selecting an area in the first facet, the selector.xrange is an array of numbers, the customdata corresponds to the data for the left facet.
However, when I do the same in the second facet, the selector.xrange becomes an , and the customdata still appears to be coming from the left facet.
I expect the selector.xrange to also be an array of numbers, when selecting in the right facet.
Here are the sample code (to be executed in jupyter notebook) and a screenshot of the result.
py.init_notebook_mode()
df = pd.DataFrame({
"x": [1,2,3,4,1,2,3,4],
"y": [1,2,3,2,1,4,2,3],
"side": ["left","left","left","left","right","right","right","right"],
"customdata": [1,2,3,4,5,6,7,8]
})
fig = px.line(df, x="x", y="y", custom_data=["side","customdata"], facet_col="side")
# fig.update_layout(clickmode='event+select')
fig.update_layout(
dragmode="select",
clickmode="select"
)
fig.update_traces(marker_size=20)
f = go.FigureWidget(fig)
def click_handler(trace, points, selector):
print(trace.customdata)
print(selector.xrange)
f.data[0].on_selection(click_handler)
f
Kind Regards
Bart