Ok, thanks for the example. I figured out what is going wrong. This doesn’t seem to work with merge_tools=True in gridplot (which is also the default value).
For example:
from bokeh.plotting import figure, show
from bokeh.models import BoxZoomTool
from bokeh.layouts import gridplot
plot = figure(width=400, height=400, tools='reset')
plot.circle([1, 2, 3], [1, 2, 3], size=20)
plot.add_tools(BoxZoomTool())
plot.add_tools(BoxZoomTool(dimensions='width'))
plot.add_tools(BoxZoomTool(dimensions='height'))
plot2 = figure(width=400, height=400, tools='reset')
plot2.circle([3, 2, 1], [1, 2, 3], size=20)
plot2.add_tools(BoxZoomTool())
plot2.add_tools(BoxZoomTool(dimensions='width'))
plot2.add_tools(BoxZoomTool(dimensions='height'))
show(gridplot([[plot], [plot2]],sizing_mode="stretch_both",merge_tools=True))
Note that if you set merge_tool=False, it works again.
Would this constitute a bug?