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

Aberta Para iniciantes
#8,148 1 comentário 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 2 dias

@Tanishdete333 já está trabalhando nisso.

Desde 1/11/2026.

  • #8159 de @Tanishdete333 — aberto

Avaliação

Dificuldade
2/5
Tempo estimado
1-3 horas
Facilidade para iniciantes
82/100
Tipo de issue
Bug
Clareza
Claramente especificada
Status de atividade
Ativa
Stack de tecnologia
javascript

Direção de pesquisa

Comece em src/traces/scatterpolargl/calc.js e compare a configuração dos marcadores após convert.style com a correção de scattergl em #4323. Reproduza o problema com o exemplo fornecido de 90.000 pontos e confirme que o gráfico polar descarta pontos. O trabalho estará concluído quando scatterpolargl exibir a mesma densidade de pontos que scattergl neste caso.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

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
Linguagem predominante
JavaScript
Estrelas
18.4k
Forks
2.1k
Merge médio
1d 5h
PRs com merge (30d)
12

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de plotly/plotly.js

Todas as issues de plotly/plotly.js

Issues semelhantes

Mais issues de JavaScript

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.