Outlier slows down zooming in scattergl
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- JavaScript
- Estrellas
- 18.3k
- Forks
- 2k
- Merge medio
- 2 d 12 h
- PR fusionados (30 d)
- 28
Descripción
I have large data sets, which have a fat tail, i.e. looks like having an outlier.
I use scattergl aiming for fast zooming. As shown in https://plotly.com/javascript/webgl-vs-svg
or in the example below, one million points can be done. However, if one point is set as an outlier, then zooming becomes very
slow. I don't understand this, and spent quite some time to pin down the problem.
<!DOCTYPE html>
<html>
<div id="plotly-div1"></div>
<div id="plotly-div2"></div>
<script src='https://cdn.plot.ly/plotly-latest.min.js'></script>
<script>
function gaussianRand() {
var rand = 0
for (var i=0; i < 3; ++i) {
rand += Math.random()
}
return (rand / 3) - 0.5
}
function plot(y, divnum){
trace1 = {
type: "scattergl",
y: y,
}
layout = {
height: 250,
margin: {l: 40, r: 10, b: 30, t: 10}
}
Plotly.plot('plotly-div'+divnum, {
data: [trace1],
layout: layout,
})
}
Y = []
for (var i=0; i < 1000000; i++) {
Y.push(gaussianRand())
}
plot(Y, 1)
Y[800000] = 100. // adding an outlier slows down zoom
plot(Y, 2)
delete Y
</script>
</html>
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza ejecutando la reproducción enlazada de JSFiddle y compara el zoom de los datos de scattergl de un millón de puntos con y sin el único valor atípico. Investiga la ruta de zoom de scattergl y el comportamiento de WebGL implicado por el ejemplo. Se considera terminado cuando el rendimiento del zoom ya no se degrada sustancialmente cuando hay un valor atípico.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- javascript
- Área
- data-visualization, performance
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Bastante claro
- Aptitud para principiantes
- 35/100