如何使用散景后端控制全息视图中的(活动)工具

Nat*_*han 3 python bokeh holoviews

如何holoviews通过bokeh后端控制绘图中使用/激活哪些工具?我已经看到了这个 SO 答案,但这只是添加了一个新的活动工具;它不会阻止任何其他工具(例如平移)处于活动状态。

对于一个具体的例子,假设我只想要悬停工具。我会尝试这样做:

import holoviews as hv
hv.extension("bokeh")
hv.Curve([1, 2, 3]).opts(tools=["hover"])
Run Code Online (Sandbox Code Playgroud)

但最终我得到了一个除了默认工具之外还悬停的图。如何指定我想要使用的所有工具的列表,以便不使用该列表之外的工具?

使用太多工具绘图

同样,如何指定所有活动工具的列表?例如

import holoviews as hv
hv.extension("bokeh")
hv.Curve([1, 2, 3]).opts(tools=["hover"], active_tools=[])
Run Code Online (Sandbox Code Playgroud)

让我平移和悬停都处于活动状态;我希望悬停成为唯一的工具,但没有任何工具处于活动状态。

使用太多活动工具进行绘图

HYR*_*YRY 5

对于第一个问题,请使用default_tools选项:

hv.Curve([1, 2, 3]).opts(tools=["hover"], default_tools=[])
Run Code Online (Sandbox Code Playgroud)

对于第二个问题,holoviews中没有方法可以做到这一点,但你可以Figure直接将其设置为对象:

def set_tools(plot, element):
    plot.state.toolbar.active_drag = None

hv.Curve([1, 2, 3]).opts(finalize_hooks=[set_tools])
Run Code Online (Sandbox Code Playgroud)