具有CustomJS回调的Bokeh滑块无法使用callback_policy ='mouseup'选项

时间:2019-05-26 19:04:56

标签: python flask bokeh

我正在尝试使用散景进行绘图以创建一个简单的烧瓶图形应用程序。我的代码使用 json_item 函数将绘图嵌入到html页面中,并且基于bokeh example。为控制绘图参数,我刚刚添加了两个滑块,为此我设置了这些滑块选项callback_policy='mouseup'。但是,当我拖动任何一个滑块时,它会产生多个图,而不是一个图。我正在使用最新的bokeh版本1.1.0。

我已经在网上搜索了该主题,但看来人们对callback_policy='mouseup'来说没有这样的问题。可能在我的特定设置中它不起作用,或者我有一个我无法捕获的错误。 我的python app.py 代码是here templates 文件夹中的 index.html here。  我将非常感谢您提供任何建议。

1 个答案:

答案 0 :(得分:0)

对于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回调和Bokeh服务器应用程序中的python回调(当然,on_changejs_on_change)。