Управляйте инструментом Bokeh xwheel_zoom с помощью виджета Bokeh / обратного вызова - PullRequest
0 голосов
/ 29 мая 2020

Я использую xwheel_zoom (WheelZoomTool) для диаграммы Боке с осью даты и времени.

p = figure(x_axis_type="datetime", tools='xwheel_zoom, crosshair, undo, reset')

Я предоставляю pandas TimeStamp в качестве значения x этой диаграммы. Например: pd.Timestamp.now(tz='utc'). Диапазон оси x этой диаграммы за последние 24 часа.

start = pd.Timestamp.now(tz='utc') - pd.Timedelta(hours=24)

Используя xwheel_zoom, я мог увеличить масштаб, чтобы лучше видеть мою диаграмму для данного времени (например, за последний час).

Есть ли способ в Bokeh, которым я мог бы достичь этой функции масштабирования, кодируя или подключаясь к xwheel_zoom и управляя им с помощью виджета Bokeh (например, раскрывающегося списка Bokeh)?

Моя цель - иметь нажмите кнопку, и пусть она покажет мне увеличенный x_axis за последний час, или покажет диаграмму между периодом datetime, который я определяю. В идеале я не хочу заново определять / перерисовывать диаграмму и просто хочу контролировать функциональность xwheel_zoom.

1 Ответ

1 голос
/ 29 мая 2020

Для этого вам не нужны никакие инструменты. Просто измените желаемый диапазон в обратном вызове. Примерно так:

b = Button()

def update():
    p.x_range.update(start=0, end=1)

b.on_click(update)

Пример будет работать только при использовании с bokeh serve. Если вы не используете это, вы можете переписать код для работы с CustomJS и js_on_click.

...