我正在尝试将某些回调添加到散景图上绘制的圆圈中。每个圆圈与columndatasource的某些记录相关联。我想在点击相应的圆圈时访问该记录。有没有办法在散景中添加回调? 我该怎么办?
我正在使用以下代码
fig =figure(x_range=(-bound, bound), y_range=(-bound, bound),
plot_width=800, plot_height=500,output_backend="webgl")
fig.circle(x='longitude',y='latitude',size=2,source=source,fill_color="blue",
fill_alpha=1, line_color=None)
答案 0 :(得分:1)
然后,您要将on_change
回调添加到数据源的selected
属性。这是一个最小的例子。如上所述,python回调需要Bokeh服务器(这是python回调实际运行的地方,因为浏览器对python一无所知),所以必须运行它,例如bokeh serve --show example.py
(或者,如果您在笔记本中,请遵循this example notebook中的模式。)
# example.py
from bokeh.io import curdoc
from bokeh.models import ColumnDataSource
from bokeh.plotting import figure
source = ColumnDataSource(data=dict(x=[1,2,3], y=[4,6,5]))
p = figure(title="select a circle", tools="tap")
p.circle('x', 'y', size=25, source=source)
def callback(attr, old, new):
# This uses syntax for Bokeh >= 0.13
print("Indices of selected circles: ", source.selected.indices)
source.selected.on_change('indices', callback)
curdoc().add_root(p)