plotly / plotly/plotly.py

On_selection event in faceted plot only works correctly in first facet

Offen
#4,423 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Dieses Issue hat noch niemand übernommen.

bug P3
Vorherrschende Sprache
Python
Sterne
18.8k
Forks
2.8k
Ø Merge
16 Std. 26 Min.
Gemergte PRs (30 T.)
21

Beschreibung

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

image

Kind Regards

Bart

Beitragsleitfaden

Beitragsleitfaden öffnen

Erste Schritte

  1. Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
  3. Forke das Repository und arbeite in einem Branch.
  4. Öffne einen Pull Request, der die Issue-Nummer nennt.

Rechercherichtung

Führen Sie das bereitgestellte faceted-plot-Beispiel in einem Jupyter-Notebook aus und überprüfen Sie den über f.data[0].on_selection verknüpften FigureWidget-Auswahl-Callback. Vergleichen Sie selector.xrange und trace.customdata, wenn Sie die linke und die rechte Facette auswählen. Erledigt ist die Aufgabe, wenn die Auswahl in beiden Facetten den entsprechenden numerischen Bereich und die Facettendaten meldet.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
jupyter-notebook, python
Bereich
data-visualization
Issue-Typ
Bug
Schwierigkeit
3/5
Geschätzter Aufwand
1-2 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
38/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.