在Bokeh中實現自定義的交互式回調邏輯,不依賴于Python服務器,可以通過使用JavaScript回調來實現。
Bokeh提供了CustomJS模塊,可以在JavaScript中定義交互式回調邏輯。下面是一個簡單的示例,演示如何在Bokeh中使用JavaScript實現交互式回調:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource, CustomJS
from bokeh.layouts import column
import numpy as np
# 創建數據
x = np.linspace(0, 10, 100)
y = np.sin(x)
# 創建數據源
source = ColumnDataSource(data={'x': x, 'y': y})
# 創建繪圖對象
plot = figure()
plot.line('x', 'y', source=source)
# 創建JavaScript回調函數
callback = CustomJS(args=dict(source=source), code="""
var data = source.data;
var x = data['x'];
var y = data['y'];
var f = cb_obj.value;
for (var i = 0; i < x.length; i++) {
y[i] = Math.sin(f * x[i]);
}
source.change.emit();
""")
# 創建滑塊控件
slider = Slider(start=0.1, end=2, value=1, step=0.1, title="Frequency")
slider.js_on_change('value', callback)
# 顯示結果
layout = column(slider, plot)
show(layout)
在上面的示例中,我們創建了一個簡單的正弦曲線圖,并添加了一個滑塊控件來調整正弦函數的頻率。通過JavaScript回調函數,我們實現了滑塊控件值的變化會實時更新正弦曲線的頻率。這樣,我們就可以在Bokeh中實現自定義的交互式回調邏輯,不依賴于Python服務器。