我试图使用BoxSelect工具,但我的回调没有被调用。这是我尝试的,基于我在网上找到的片段。
from bokeh.models.sources import ColumnDataSource
from bokeh.plotting import figure, curdoc
x = [1,2,3,4,5,6]
y = [i*i for i in x]
source = ColumnDataSource(data=dict(x=x,y=y))
p = figure(tools="xbox_select")
p.line("x", "y", source=source)
def selectedCallback(attr, old, new):
print("Selected callback")
source.on_change('selected', selectedCallback)
curdoc().add_root(p)
拖动鼠标时会显示选择框,但不会调用回调。
(使用Bokeh 0.11.1和Python 3.5.1)
答案 0 :(得分:0)
好的,所以我找到了答案:似乎线图不支持选择。将p.line
更改为p.scatter
会使其有效。在我的真实应用程序中,我向行添加了不可见的散点,以便选择起作用。这是一种解决方法,但它让我开始。