Hi @shanv, that’s quite hacky and I haven’t tried it, but one thing you could do is to have a callback listening to the
relayoutData of your figure (see https://dash.plot.ly/interactive-graphing), and if the zoom is too large / the axis range too small, then you reset the zoom. You would need to use a trick so that the callback does not generate an infinite sequence of callback triggering, what you can do is to store the time at which the callback is triggered in a
dcc.Store and when the callback is triggered again compare the current time with the data in the
dcc.Store (and raise
dash.no_update if it’s too close, which will break the loop). Once again, not tested, so I don’t know if this would be smooth enough for your application.