Как добавить несколько инструментов наведения, не отображая несколько значков на панели инструментов? - PullRequest
0 голосов
/ 09 ноября 2018

Следуя примеру здесь Я добавил несколько всплывающих подсказок к гистограмме с накоплением. Я также хочу, чтобы на панели инструментов над графиком были доступны другие инструменты, но при создании нескольких инструментов наведения с помощью процесса, приведенного в примере, на панели инструментов создаются несколько значков, что выглядит беспорядочно:

toolbar

Есть ли способ добавить несколько инструментов наведения и сделать панель инструментов видимой с другими инструментами, но не дублировать значок наведения?

1 Ответ

0 голосов
/ 15 ноября 2018

Просто установите атрибут 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 каждого зависания, нажимая какую-либо кнопку или пользовательский инструмент.

...