You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
[BUG]: scatterpolargl drops points between 10000 and 100000 points #8148
scatterpolargl does not set opts.marker.snap as scattergl does. This limits how many markers are displayed at certain zoom levels due to how regl-scatter2d handles rendering with its default snap value (10000). See #4323.
Screenshots
scatterpolargl vs. scattergl with the same data:
Steps to reproduce
Open Plotly devtools and paste the following into the browser devtools console:
Note that the scatterpolargl plot is pale compared to scattergl
Notes
For a scatterpolargl trace with more than 10000 points, regl-scatter2d builds its own cluster tree. It then draws only the level-of-detail subset of points. The same data on scattergl draws every point.
Hi @camdecoster, Tanish here, I’d like to work on this. I reproduced it on current main: with 30,000 points of identical data, scatterpolargl renders visibly paler than scattergl, while at 5,000 points they look alike. From reading the code, scatterpolargl/calc.js never sets opts.marker.snap (scattergl/calc.js does, from #4323), so regl-scatter2d’s default of 10000 applies. My plan is to set it in calc.js, add a jasmine test, and check what happens above 100k points, where plot.js passes a cluster tree. Is anyone already working on this, or is there anything you’d like handled differently?
Activity
Tanishdete333 commentedon Oct 30, 2026
Hi @camdecoster, Tanish here, I’d like to work on this. I reproduced it on current main: with 30,000 points of identical data, scatterpolargl renders visibly paler than scattergl, while at 5,000 points they look alike. From reading the code, scatterpolargl/calc.js never sets opts.marker.snap (scattergl/calc.js does, from #4323), so regl-scatter2d’s default of 10000 applies. My plan is to set it in calc.js, add a jasmine test, and check what happens above 100k points, where plot.js passes a cluster tree. Is anyone already working on this, or is there anything you’d like handled differently?