我正在尝试使用 Bokeh 应用程序计算绘图中给定数据范围的一些统计数据。为了选择范围,我使用 RangeTool。但是我找不到检测该事件的方法。我使用这个例子作为基础:
https://docs.bokeh.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)
但是当我移动 slider 时,我没有看到任何差异。任何想法都非常受欢迎。谢谢
最佳答案
RangeTool
更新其配置的范围,您可以(并且应该)只在范围本身上添加回调,例如:
range_tool.x_range.on_change('start', ...)
关于您所拥有的 range_rool.on_change("x_range",func)
行,值得解释的是,当范围对象本身为批发更换,即
range_tool.x_range = some_new_Range1d
会触发该回调。但该系列通常不会像这样被更换。相反,单个范围的 start
和 end
值会随着时间的推移而更新。
此外,顺便说一句,根本没有任何正当理由访问_properties
。它是私有(private) API,随时可能更改。
关于slider - RangeTool 更新 Bokeh 中的事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51453412/