3DScatter plot can not be manipulated while actively updating

I am using a 3DScatter plot which is dynamically being updated with new data. The issue is that while it’s being updated, I cannot manipulate it - zoom, rotate, pan do not work.

If I click on the control icons, I can start doing the operation that i’ve enabled. However, while performing the action with the mouse, it always keeps resetting the view to the default.

Does anyone know why this is happening and/or how to fix it?

Any help and/or feedback?

Thank you.

Hello @voidtrance,

It seems that you are looking for uirevision=True:

Unfortunately, that does not help.

The UI still does not respond to mouse controls properly while being updated.

Can you give an MRE for us to try?

With the following app, the graph is not responding to mouse controls at all while updating. If I use the navbar options to “lock” the controls to a specific type (pan, zoom, rotate, etc), it starts responding but continuously resets.

#!/usr/bin/env python3
import plotly.graph_objects as go
from dash import Dash, dcc, html
from dash.dependencies import Input, Output
import random

app = Dash("Emulator Trace")

g = go.Scatter3d(name="shape", mode="lines", x=[], y=[], z=[])
l = go.Layout(autosize=False, width=1800, height=1800,
                margin=go.layout.Margin(l=50, r=50, b=100, t=100, pad=4),
                uirevision=True)
fig = go.Figure(g, layout=l)

app.layout = html.Div([
    html.Div([
        dcc.Graph(id="travel-plot", figure=fig),
        dcc.Interval(id="interval-component", interval=40, n_intervals=0)
    ]),
])

@app.callback(Output('travel-plot', 'extendData'),
              Input('interval-component', 'n_intervals'))
def update_path_data(n):
    x, y, z = [random.randrange(0, 300) for _ in range(3)]
    data = {'x':[[x]], 'y': [[y]], 'z': [[z]]}
    return data

app.run(debug=True)