[BUG]: `scattergl` and `splom` hover ignores marker size for overlapping points
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Accessibilité débutants
- 55/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- javascript
- Domaine
- data-visualization
Piste de recherche
Reproduce the overlapping-marker example in the browser devtools, then compare scatter/hover.js with the scattergl and splom hover paths. Read the marker sizes computed in scattergl/convert.js and trace how the spatial-tree search uses hoverdistance. Done means WebGL hover ranking matches scatter for marker size and x-hovermode without unintended changes elsewhere.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Description
If markers of different sizes overlap, scatter and scattergl show different hover labels. scatter includes the marker radius in the hover distance, and a smaller marker wins while the pointer is near its center (src/traces/scatter/hover.js). scattergl and splom measure only the distance to the marker center, so the marker drawn on top always wins. scatterpolargl inherits this through scattergl.
scattergl also uses a plain |dx| in x hovermode, but scatter changes the shape of dx inside the marker radius. That difference can rank close points differently.
This is a follow-up to #8077, which fixed ties between equal distances.
Steps to reproduce
- Open Plotly devtools
- Run this snippet in the browser devtools
Plotly.newPlot(gd, {
data: [
{ type: 'scatter', name: 'A', mode: 'markers', marker: { size: 6 }, x: [1], y: [0] },
{ type: 'scatter', name: 'B', mode: 'markers', marker: { size: 20 }, x: [1], y: [0] }
],
layout: { hovermode: 'closest' }
});
- Hover the center of the shared point
- Note that the label shows A
- Change both traces to
type: 'scattergl'and hover again - Note that the label shows B
Notes
- A fix probably means sharing the scoring functions in
scatter/hover.jswithscatterglandsplom - Each marker's radius can be taken from the sizes that
scattergl/convert.jsalready computes - Large traces search a spatial tree within
hoverdistanceof the pointer, so the search box also has to grow by the largest marker radius - This would changed hover results for every WebGL plot with markers of different sizes, so we need to be careful about the blast radius
- Langage dominant
- JavaScript
- Étoiles
- 18.3k
- Forks
- 2k
- Merge moyen
- 1 j 17 h
- PR mergées (30 j)
- 22
Préparer son environnement
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.
Autres issues de plotly/plotly.js
-
chore P3 plotly-internal size: 3 task
Difficulté 2/5 1-3 heures Accessibilité débutants 77/100
plotly/plotly.js#8064 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
chore P1 plotly-internal size: 1 task
Difficulté 1/5 Moins d'une heure Accessibilité débutants 82/100
Les mainteneurs répondent en général sous 1 jour
-
chore P3 plotly-internal size: 1 task
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
plotly/plotly.js#7648 · 3 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug infrastructure P2
Difficulté 1/5 Moins d'une heure Accessibilité débutants 65/100
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de plotly/plotly.js
Issues similaires
-
新讀者走讀回報,照著一篇文章實際操作Ouvertedocumentation good first issue help wanted
Difficulté 1/5 1-3 heures Accessibilité débutants 92/100
Les mainteneurs répondent en général sous 1 jour
-
automated issue report
Difficulté 1/5 Moins d'une heure Accessibilité débutants 85/100
lirantal/discoprint#29 ·
Les mainteneurs répondent en général sous 1 jour
-
RSS feed autodiscoveryOuvertefeature-request
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
louislam/uptime-kuma#7914 · 1 commentaire ·
Les mainteneurs répondent en général sous 1 jour
-
Code Cleanup dependencies
Difficulté 1/5 Moins d'une heure Accessibilité débutants 68/100
ProjectSidewalk/SidewalkWebpage#5609 ·
Les mainteneurs répondent en général sous 1 jour
-
help wanted javascript
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
OWASP/cornucopia#3538 ·
Les mainteneurs répondent en général sous 1 jour