Слайдер Bokeh с обратным вызовом CustomJS не может использовать опцию callback_policy = 'mouseup' - PullRequest
0 голосов
/ 26 мая 2019

Я пытаюсь создать простое колбу графическое приложение, использующее bokeh для печати. Мой код использует функцию json_item для встраивания графика в html-страницу и основан на bokeh пример . Для управления параметрами графика я только что добавил два ползунка, для которых у меня есть установите опцию callback_policy='mouseup'. Однако, когда я перетаскиваю любой из слайдеров, он создает несколько графиков вместо одного графика. Я использую последнюю версию боке 1.1.0.

Я искал в Интернете эту тему, но похоже, что у людей нет такой проблемы с callback_policy='mouseup'. Возможно, это не работает в моей конкретной настройке, или у меня есть ошибка, которую я не могу поймать. Мой python app.py код здесь и index.html из templates папка здесь . Буду очень признателен за любой совет.

1 Ответ

0 голосов
/ 26 мая 2019

Для Bokeh версий 1.1 и более ранних * callback_policy применяется только к старому стилю callback Slider, а не к более новым универсальным js_on_change методам. Так что вы должны делать это:

fs.callback = cbk
ss.callback = cbk

Однако в предстоящем выпуске Bokeh все было улучшено и прояснено. Вышеупомянутый метод будет продолжать работать (до Bokeh 2.0), но рекомендуемый способ сделать это будет наблюдать за новым свойством value_throttled:

# use this for version 1.2 and later:

fs.js_on_change('value_throttled', cbk)
ss.js_on_change('value_throttled', cbk)

Обратите внимание, что в приведенном выше новом методе будет работать как обратные вызовы JS, так и теперь и обратные вызовы python в приложениях на сервере Bokeh (конечно, вместо on_change из js_on_change).

...