我正在尝试使用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)
但是当我移动滑块时,我看不到任何区别。任何想法都非常欢迎。谢谢
答案 0 :(得分:1)
RangeTool
更新其配置范围,您可以(并且应该)仅在范围本身上添加回调,例如:
range_tool.x_range.on_change('start', ...)
关于行range_rool.on_change("x_range",func)
,值得解释的是,当范围对象本身被批发替换时,即
func
。
range_tool.x_range = some_new_Range1d
将触发该回调。但是范围通常不会像这样被替换。相反,单个范围的start
和end
值会随着时间更新。
此外,顺便说一句,根本没有任何有效的理由来访问_properties
。它是一个专用API,随时可能更改。