[BUG]: `scatterpolargl` drops points between 10000 and 100000 points

Abierto Apto para principiantes
#8,148 1 comentario 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@Tanishdete333 ya está trabajando en esto.

Desde el 1/11/2026.

  • #8159 de @Tanishdete333 — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
82/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
javascript

Línea de trabajo

Empieza en src/traces/scatterpolargl/calc.js y compara la configuración de marcadores después de convert.style con la corrección de scattergl en #4323. Reproduce el problema con el ejemplo proporcionado de 90.000 puntos y confirma que el gráfico polar omite puntos. El trabajo estará terminado cuando scatterpolargl muestre la misma densidad de puntos que scattergl en este caso.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

bug P3 size: 1
Description

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:

Image
Steps to reproduce
  • Open Plotly devtools and paste the following into the browser devtools console:
const n = 90000;
const gauss = () => (Math.random() + Math.random() + Math.random() + Math.random() - 2) / 2;

const x = [];
const y = [];
const r = [];
const theta = [];
for (let i = 0; i < n; i++) {
    const px = 0.05 * gauss();
    const py = 0.05 * gauss();
    x.push(px);
    y.push(py);
    r.push(Math.hypot(px, py));
    theta.push(Math.atan2(py, px) * 180 / Math.PI);
}

const marker = {color: 'rgba(0,0,255,0.01)', size: 3};

Plotly.newPlot(gd, [
    {type: 'scatterpolargl', mode: 'markers', r, theta, marker, subplot: 'polar'},
    {type: 'scattergl', mode: 'markers', x, y, marker, xaxis: 'x', yaxis: 'y'}
], {
    width: 760,
    height: 420,
    showlegend: false,
    polar: {domain: {x: [0, 0.45]}},
    xaxis: {domain: [0.58, 1], anchor: 'y'},
    yaxis: {domain: [0.1, 0.9], anchor: 'x', scaleanchor: 'x'}
});
  • 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.
  • scattergl had this bug but it got fixed in #4323
  • The same fix can be applied to this trace: set opts.marker.snap = len after convert.style in src/traces/scatterpolargl/calc.js
Lenguaje dominante
JavaScript
Estrellas
18.4k
Forks
2.1k
Merge medio
1 d 5 h
PR fusionados (30 d)
12

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de plotly/plotly.js

Todos los issues de plotly/plotly.js

Issues similares

Más issues de JavaScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.