RangeTool更新bokeh中的事件

时间:2018-07-21 06:19:19

标签: slider bokeh

我正在尝试使用bokeh应用程序来计算某地块中给定数据范围的一些统计信息。为了选择范围,我正在使用RangeTool。但是,我找不到检测事件的方法。我以此示例为基础:

https://bokeh.pydata.org/en/latest/docs/gallery/range_tool.html

然后我尝试了:

def func():
    print(range_rool._property_values['x_range'].start)
    return 
def func_e(event):
    print('event detected')
    return

range_rool.on_event(ButtonClick,func_e)
range_rool.on_event(Press,func)    
range_rool.on_change("x_range",func)

但是当我移动滑块时,我看不到任何区别。任何想法都非常欢迎。谢谢

1 个答案:

答案 0 :(得分:1)

RangeTool更新其配置范围,您可以(并且应该)仅在范围本身上添加回调,例如:

range_tool.x_range.on_change('start', ...)

关于行range_rool.on_change("x_range",func),值得解释的是,当范围对象本身被批发替换时,即

,它指示Bokeh运行func
range_tool.x_range = some_new_Range1d

将触发该回调。但是范围通常不会像这样被替换。相反,单个范围的startend值会随着时间更新。

此外,顺便说一句,根本没有任何有效的理由来访问_properties。它是一个专用API,随时可能更改。