Как управлять (активными) инструментами в holoviews с боке - PullRequest
1 голос
/ 11 июля 2019

Как мне контролировать, какие инструменты используются / активны на графике holoviews с бэкэндом bokeh?Я видел этот SO-ответ , но только добавляет новый активный инструмент;он не мешает другим инструментам (например, панорамированию) быть активными.

Для конкретного примера, предположим, что мне нужен только инструмент наведения мыши.Я хотел бы попытаться сделать это:

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

, но затем я получаю график, который содержит в дополнение к инструментам по умолчанию.Как мне указать список всех инструментов, которые я хочу использовать, чтобы не использовались инструменты, которых нет в этом списке?

plot with too many tools

Аналогично, как мне указать список всех активных инструментов?Например,

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

дает мне и пан, и зависание;Я хочу, чтобы указатель мыши был единственным инструментом, но не активным инструментом.

plot with too many active tools

1 Ответ

2 голосов
/ 12 июля 2019

Для вашего первого вопроса используйте 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])
...