Sync zoom of different Graph objects

I have two plots, each has a callback which generates it separately, e.g.

def  @app.callback(Output("figure_1", "figure"), ...):
    fig = ....
    return fig

(same for figure_2).

Moreover, these figures should have a shared x-range (time).
However, if I try to create a callback based on relayout property of figure 1 to update figure 2, dash throws an error of Overlapping outputs. I also tried client side callback but dash also complain on overlapping.

The discussion I’ve linked here includes a working code example, and some discussion of other issues that can turn up. Does this help at all?

1 Like

It might. It does not discuss the overlapping output issue explicitly, but I see implicitly that it uses the div container for the figure output and a different output (the figure it self) when updating zoom