plotly / plotly/plotly.js

`autorange` throws when y range is small

Abierto
#6,249 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

bug P2
Lenguaje dominante
JavaScript
Estrellas
18.3k
Forks
2k
Merge medio
2 d 12 h
PR fusionados (30 d)
28

Descripción

When max(y) - min(y) is a very small value, ie, Number.MIN_VALUE, plotly failed to draw the plot.

Codepen https://codepen.io/opportunityliu/pen/QWmwPEO

TESTER = document.getElementById('tester');

Plotly.react( TESTER, [{
    x: [1, 2, 3, 4, 5],
    y: [0,0,0,0,Number.MIN_VALUE] }]);

image

Got error:

plotly-2.12.1.js:141901 
        
       Uncaught TypeError: Cannot read properties of undefined (reading 'val')
    at getAutoRange (plotly-2.12.1.js:141901:26)
    at doAutoRange (plotly-2.12.1.js:142098:56)
    at exports.doAutoRangeAndConstraints (plotly-2.12.1.js:140196:13)
    at doAutoRangeAndConstraints (plotly-2.12.1.js:134769:21)
    at lib.syncOrAsync (plotly-2.12.1.js:129221:15)
    at positionAndAutorange (plotly-2.12.1.js:134759:20)
    at lib.syncOrAsync (plotly-2.12.1.js:129221:15)
    at Object._doPlot (plotly-2.12.1.js:134834:24)
    at Object.newPlot (plotly-2.12.1.js:135011:20)
    at Object.react (plotly-2.12.1.js:137070:28)

When the diff become slightly larger, ie, 1e-310, I got another error and an empty plot

Codepen https://codepen.io/opportunityliu/pen/wvmBZEy

TESTER = document.getElementById('tester');

Plotly.react( TESTER, [{
    x: [1, 2, 3, 4, 5],
    y: [0,0,0,0,1e-310] }]);

image

plotly-2.12.1.js:153093 
        
       Uncaught Error: Something went wrong with axis scaling
    at ax.setScale (plotly-2.12.1.js:153093:19)
    at axes.drawOne (plotly-2.12.1.js:144647:8)
    at plotly-2.12.1.js:144605:31
    at lib.syncOrAsync (plotly-2.12.1.js:129221:15)
    at axes.draw (plotly-2.12.1.js:144600:16)
    at drawAxes (plotly-2.12.1.js:134783:21)
    at lib.syncOrAsync (plotly-2.12.1.js:129221:15)
    at Object._doPlot (plotly-2.12.1.js:134834:24)
    at Object.newPlot (plotly-2.12.1.js:135011:20)
    at Object.react (plotly-2.12.1.js:137070:28)

Guía de contribución

Abrir la guía de contribución

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.

Línea de trabajo

Reproduce el fallo con los dos ejemplos de JavaScript y sigue la pila indicada desde getAutoRange y doAutoRange hasta ax.setScale. La corrección estará hecha cuando los dos rangos y muy pequeños se rendericen correctamente, sin errores de valores indefinidos ni de escalado del eje.

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

Evaluación

Stack tecnológico
javascript
Área
data-visualization
Tipo de issue
Error
Dificultad
3/5
Tiempo estimado
1-2 días
Estado de actividad
Estancado
Claridad
Bastante claro
Aptitud para principiantes
35/100

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.