You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Scatter 3D dragmode turntable loses the camera.eye on JavaScript reload #6359
Scatter 3D dragmode "orbit" and "turntable" moves camera.eye but it is not reflected to layout.schene.camera.eye of the frame. It will be saved just after mouse click event or wheel, through relayoutCallback > scene.saveLayout .
If replot, react, animate and so on, happens during mouse move and mouse up, replot uses layout.schene.camera.eye saved BEFORE and overwrite.
It can reploduced in https://halueda.github.io/wavy-orbitals/ .
Its color is chaneged once a second and you can only rotate 3d-axis if mouse move is in 1 second, during color change.
To solve this, there seems two ways.
every mouse move event do scene.saveLayout. It may cause performance impact.
replot function do scene.saveLayout if the plot is 3d.
Perhaps more genral way should be used. For example, mouse moving event set into something like pending events and replot-api executes all pending events prior to real replot. As well as, scene.saveLayout clears the pending event.
3D scene (like scatter3d) does not preserve its layout when data is updated during user interaction (like dragging) even if uirevision is set to be constant. This makes it really hard to interact with the figure when it updates frequently.
I think it occurs not only with "orbit" and "turntable" but also with "zoom" and "pan".
changed the title [-]Scatter 3D dragmode turntable loose the camera.eye when a javascript reload, e.g. react, replot, animate.[/-][+]Scatter 3D dragmode turntable loses the camera.eye on JavaScript reload[/+]on Aug 9, 2024
Activity
tkntkn commentedon Dec 29, 2022
+1.
3D scene (like scatter3d) does not preserve its layout when data is updated during user interaction (like dragging) even if uirevision is set to be constant. This makes it really hard to interact with the figure when it updates frequently.
I think it occurs not only with "orbit" and "turntable" but also with "zoom" and "pan".
Reproduce: https://codepen.io/tknx/pen/GRBZRyw
halueda commentedon Jan 2, 2023
I found tentative quick hack to solve this, until this issue will be solved. My repository has been applied this.
Call saveLayout() just before Plotly.update(), like following code.
rodrigo-pena commentedon Jun 28, 2024
@halueda Is there an equivalent hack on plotly for Python?
halueda commentedon Jul 1, 2024
Sorry, I don't know.
[-]Scatter 3D dragmode turntable loose the camera.eye when a javascript reload, e.g. react, replot, animate.[/-][+]Scatter 3D dragmode turntable loses the camera.eye on JavaScript reload[/+]fix(compass): paint live triad into sibling SVG layer; never relayout…