plotly / plotly/plotly.py

Events such as on_click in charts/figures with multiple traces only receive point ids for one trace

Ouverte
#2,751 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Personne n'a encore pris cette issue.

bug P3
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.

2020-09-06_14h52_21

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

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. 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

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.