要在Bokeh图表中添加自定义的JS回调,您可以使用CustomJS回调。以下是一个简单的示例,演示如何在Bokeh图表中添加一个点击事件的自定义JS回调:
from bokeh.plotting import figure, show
from bokeh.models import CustomJS, ColumnDataSource
# 创建一个数据源
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4, 5], y=[6, 7, 2, 4, 5]))
# 创建一个图表
p = figure(plot_width=400, plot_height=400, tools="tap", title="Click the dots")
# 添加一个圆圈图形
circle = p.circle('x', 'y', size=20, source=source)
# 创建一个自定义JS回调
callback = CustomJS(args=dict(source=source), code="""
var data = source.data;
var ind = cb_data.source.selected.indices;
console.log('Selected index:', ind);
""")
# 将自定义JS回调与图表的tap事件关联
p.js_on_event('tap', callback)
# 显示图表
show(p)
在这个例子中,我们创建了一个包含x和y坐标的数据源,并创建了一个包含这些数据的散点图。然后,我们创建了一个自定义JS回调,当用户点击图表中的点时,将会在控制台输出所选点的索引。最后,我们将自定义JS回调与图表的tap事件关联起来。
您可以根据需要修改自定义JS回调的代码,以实现您想要的功能。Bokeh还提供了许多其他类型的回调和自定义JS回调,可以帮助您实现各种交互功能。