ranges does not get computed when same data is used but Plot is updated
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 3/5
- Tiempo estimado
- 1-2 días
- Aptitud para principiantes
- 48/100
- Tipo de issue
- Error
- Claridad
- Bastante claro
- Estado de actividad
- Estancado
- Stack tecnológico
- javascript, plotly, react
- Área
- data-visualization, frontend
Línea de trabajo
Comienza con la reproducción same_data enlazada y sigue la ruta de actualización del componente Plot cuando cambia el layout, pero se reutilizan los datos. Compara las variantes new_array y new_object para identificar el comportamiento compartido. Se considera terminado cuando los ranges siguen calculándose y el zoom sigue funcionando después de hacer clic en Update Plot.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
If layout is change but data stays the same, Plot's ranges are not computed correctly.
Consider this React component
(full project can be found here: https://github.com/saad-learns/react-plotly/tree/same_data
function App() {
const [plotUpdated, setPlotUpdated] = React.useState<number>(0);
const [plotParams, setPlotParams] = React.useState<PlotParams>({
data: [
{
x: [-3, -2, -1, 0, 1, 2, 3],
y: [
-0.1411200080598672, -0.9092974268256817, -0.8414709848078965, 0,
0.8414709848078965, 0.9092974268256817, 0.1411200080598672,
],
},
],
layout: {},
});
const updatePlot = () => {
setPlotParams((prevState) => ({
data: prevState.data,
layout: {},
}));
};
return (
<div className="App">
<div style={{ padding: 10 }}>
<button onClick={updatePlot}>Update Plot</button>
</div>
<Plot
data={plotParams.data}
layout={plotParams.layout}
onUpdate={() => setPlotUpdated((prevState) => prevState + 1)}
/>
<div>Plot updated: {plotUpdated}</div>
</div>
);
At the start, ranges are calculated correctly. You can verify that with React Dev Tool's Component tab:
Or you can use Zoom In and Zoom Out button to verify that zooming is working.
But if you click on the Update Plot button, the ranges are not computed, in fact they get removed:
Thereafter, zooming does not work.
Here, updatePlot will use the same data object, but makes use of a new layout. According to https://github.com/plotly/react-plotly.js#refreshing-the-plot Plot should be refreshed, and it does, but ranges are no longer computed correctly.
There are other variation of the above issue:
- Use a new array but same previous data element: https://github.com/saad-learns/react-plotly/blob/new_array/src/App.tsx
- Use a new array, and a new element but with same previous data: https://github.com/saad-learns/react-plotly/blob/new_object/src/App.tsx
where ranges are not computed properly.
- Lenguaje dominante
- JavaScript
- Estrellas
- 1.1k
- Forks
- 138
- Merge medio
- 3 d 2 h
- PR fusionados (30 d)
- 4
Guía de contribución
No hay ninguna guía de contribución indexada para este repositorio
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.
Más de plotly/react-plotly.js
-
P3 plotly-internal size: 1 task
Dificultad 3/5 1-2 días Aptitud para principiantes 45/100
plotly/react-plotly.js#386 ·
-
enhancement P3 size: 1
Dificultad 3/5 1-2 días Aptitud para principiantes 65/100
plotly/react-plotly.js#380 · 7 comentarios ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 48/100
plotly/react-plotly.js#358 · 1 comentario ·
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
plotly/react-plotly.js#354 ·
-
Dificultad 3/5 1-2 días Aptitud para principiantes 30/100
plotly/react-plotly.js#353 · 1 comentario ·
Todos los issues de plotly/react-plotly.js
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 74/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 86/100
sugarlabs/musicblocks#8847 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Request: SumUp Abiertonew icon permissions in review
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
simple-icons/simple-icons#15027 ·
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
TheOdinProject/curriculum#31408 ·