如何在Bokeh后端中使用Holoviews来控制(激活)工具

3
我该如何使用bokeh后端控制holoviews图形中使用/激活的工具?我看过这个SO答案,但它只会添加一个新的激活工具;它不能防止其他工具(例如pan)被激活。
举个例子,假设我只想要悬停工具。我可以尝试以下操作:
import holoviews as hv
hv.extension("bokeh")
hv.Curve([1, 2, 3]).opts(tools=["hover"])

但是我最终得到的图表除了默认工具之外,还有hover(悬停)功能。我应该如何指定我要使用的所有工具列表,以便不使用不在该列表中的工具?

带有过多工具的图表

同样地,我应该如何指定所有活动工具的列表?例如:

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

给我同时启用了“缩放”和“悬停”工具; 我只想使用“悬停”工具,但不想使用任何工具。

活动工具太多的绘图

2个回答

5

针对您的第一个问题,使用default_tools选项:

hv.Curve([1, 2, 3]).opts(tools=["hover"], default_tools=[])

关于第二个问题,Holoviews 没有这种方法,但您可以直接将其设置到 Figure 对象中:

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

hv.Curve([1, 2, 3]).opts(finalize_hooks=[set_tools])

4

为了完整起见,目前以下工具可用:

box_edit、box_select、box_zoom、click、crosshair、help、hover、 lasso_select、pan、point_draw、poly_draw、poly_edit、poly_select、 previewsave、redo、reset、save、tap、undo、wheel_zoom、xbox_select、 xbox_zoom、xpan、xwheel_pan、xwheel_zoom、xzoom_in、xzoom_out、 ybox_select、ybox_zoom、ypan、ywheel_pan、ywheel_zoom、yzoom_in、 yzoom_out、zoom_in、zoom_out

你可以通过键入不存在的选项来获取所有可能的选项列表。信息丰富的错误消息会给出可供选择的选项列表。所以只需执行以下操作:

hv.Scatter(df).opts(tools=['nonsense'])

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接