如何在不显示多个图标的情况下添加多个悬停工具?

时间:2018-11-08 21:09:12

标签: python bokeh

在示例here之后,我向堆叠的条形图添加了多个工具提示。我还想在图上方的工具栏中提供其他工具,但是当使用示例中的过程创建多个悬停工具时,它会在工具栏中创建多个图标,看起来像这样:

toolbar

是否可以添加多个悬停工具,并使工具栏与其他工具一起可见,但不能复制悬停图标?

1 个答案:

答案 0 :(得分:2)

只需将toggleable属性设置为False。检查隐藏鼠标悬停工具按钮的此示例:

from bokeh.models import HoverTool, ColumnDataSource, LassoSelectTool, PanTool
from bokeh.plotting import show, figure, curdoc

source = ColumnDataSource(dict(
    x=[1, 2, 3, 4],
    y=[5, 6, 7, 8]
))

p = figure(
    width=400,
    height=400,
    tools='')

p.scatter(
    x='x', y='y', source=source,
    fill_alpha=1.0, line_alpha=1.0, line_color="grey",
    size=6
)

pan = PanTool()
lasso = LassoSelectTool()

tooltips = '''
    <b>X: </b> @{x} <br>
    <b>Y: </b> @{y} <br>
'''
hover = HoverTool(
    toggleable=False,       # add this to all your hover tools
    mode='mouse',
    tooltips=tooltips,
)

tools = (
    pan, lasso, hover
)
p.add_tools(*tools)

curdoc().add_root(p)

好吧,如果您只想使用一个按钮,则可以只使用一个悬停工具。模型CustomJSHover对您可能有用。

作为解决方法,您还可以通过按一些按钮或自定义工具来更新每个悬停的renderers属性。