Передайте выбор BoxSelectTool cb_data в код Python на сервере Bokeh - PullRequest
0 голосов
/ 24 мая 2019

У меня есть боке-график, где мне нужно, чтобы пользователь интерактивно выбрал определенный x-диапазон. С этим выбором мне нужно выполнить сложный код Python - обратный вызов CustomJS не вариант.

BoxSelectTool кажется идеальным для этого - по внешнему виду это именно то, что мне нужно (см. Скриншот ниже).

Согласно документации, после завершения выбора может быть вызван пользовательский обратный вызов, который сообщает мне диапазон выбора cb_data . Однако я не могу найти способ передать это в функцию Python - похоже, я могу добавить только обратный вызов CustomJS в качестве обратного вызова.

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

enter image description here

1 Ответ

0 голосов
/ 06 июня 2019

Мне удалось эмулировать поведение, активировав BoxSelectTool, проигнорировав его, и вместо этого прочитав необработанные данные, сгенерированные событиями (как описано здесь ):

fig_speeds.add_tools(BoxSelectTool(dimensions="width"))

def cb_on_pan_start(event):
  print("start{} _ ".format(event.x))
fig_speeds.on_event(PanStart, cb_on_pan_start)

def cb_on_pan_end(event):
  print("{} ".format(event.x))
fig_speeds.on_event(PanEnd, cb_on_pan_end)

Очевидно, я заменил операторы печати своим реальным кодом события, но вы поняли идею.

...