Open saadlu opened 1 year ago
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:
where ranges are not computed properly.
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
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:
where ranges are not computed properly.