BokehJS BoxZoomTool 默认情况下始终处于活动状态,即使设置为 active: false

BokehJS BoxZoomTool always active by default, even when setting active: false

在 BokehJS 2.4.2 中,BoxZoomTool 默认情况下始终处于活动状态,即使在添加工具时将 active 属性 设置为 false 也是如此。

const box_zoom = new Bokeh.BoxZoomTool({
    active: false,
});
plot.add_tools(box_zoom);

使用其他工具,例如 FreehandDrawTool,默认情况下该工具未激活,并且 active 属性 不会被忽略。

如何在不默认激活的情况下添加 BoxZoomTool?

BoxZoomTool 没有参数 active,因此您的示例中忽略了关键字。

要激活工具,请查看此 documentation

在你的情况下,行 p.toolbar.active_drag = None 起到了作用,它停用了所有 pan/drag tools,你只能打开它。 此行接受 "auto"Nonepan/drag.

的实例

Python 例子

from bokeh.plotting import show, figure, output_notebook
from bokeh.models import BoxZoomTool
output_notebook()

p = figure(width=300, height=300, tools='')
box_zoom = BoxZoomTool()
p.line(x=[1,2,3,4,5], y=[1,2,3,4,5])
p.toolbar.active_drag = None # could also be "auto" or box_zoom
p.add_tools(box_zoom)

show(p)

这可以适配JS。