Events such as on_click in charts/figures with multiple traces only receive point ids for one trace
Personne n'a encore pris cette issue.
- Langage dominant
- Python
- Étoiles
- 18.8k
- Forks
- 2.8k
- Merge moyen
- 16 h 26 min
- PR mergées (30 j)
- 21
Description
For figures that have multiple traces it is not possible to get the id of the clicked trace points for all traces, only one. This is a problem when trying to display details for clicked points of multiple traces.
The example below shows how to reproduce the behaviour with plotly 4.9.0 in a Jupyter notebook. When clicking on the green points, the text below the chart shows the id of the clicked point but when clicking on one of the purple points, the id is empty.

Could you kindly take a look?
import plotly.graph_objects as go
from ipywidgets import Output, VBox
import numpy as np
np.random.seed(1)
out = Output()
# create our callback function
@out.capture(clear_output=True)
def update_point(trace, points, selector):
print(f'Clicked {points.point_inds}')
def create_scatter(colour):
scatter = go.Scatter(x=np.random.rand(30), y=np.random.rand(30), mode='markers')
colors = [colour] * 30
scatter.marker.color = colors
scatter.marker.size = [10] * 30
return scatter
scatter1 = create_scatter(colour='#a3a7e4')
scatter2 = create_scatter(colour='#bae2be')
fig = go.FigureWidget([scatter1, scatter2])
fig.data[0].on_click(update_point)
fig.data[1].on_click(update_point)
fig.layout.hovermode = 'closest'
VBox([fig, out])
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Piste de recherche
Reproduisez le problème dans le Jupyter notebook fourni en utilisant FigureWidget, deux traces Scatter et des callbacks on_click distincts. Commencez par le chemin de callback de trace de FigureWidget et examinez comment points.point_inds est renseigné pour chaque trace. C’est terminé lorsque cliquer sur des points de l’une ou l’autre des deux traces renvoie l’ID du point cliqué plutôt qu’une valeur vide.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- jupyter-notebook, python
- Domaine
- data-visualization
- Type d'issue
- Bug
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100