在Bokeh中,可以使用CustomJS回調函數來動態更新其他HTML元素。首先,定義一個CustomJS回調函數來處理Bokeh plot中的事件,然后在回調函數中使用JavaScript代碼來更新其他HTML元素。例如:
from bokeh.plotting import figure, show
from bokeh.models import ColumnDataSource, CustomJS
from bokeh.layouts import column
from bokeh.models.widgets import TextInput
# 創建一個Bokeh plot
plot = figure()
source = ColumnDataSource(data=dict(x=[1, 2, 3], y=[4, 5, 6]))
plot.line(x='x', y='y', source=source)
# 創建一個文本輸入框
text_input = TextInput(value="Hello, Bokeh!")
# 定義一個CustomJS回調函數來更新文本輸入框的值
callback = CustomJS(args=dict(text_input=text_input), code="""
text_input.value = "New value!";
""")
# 將回調函數綁定到Bokeh plot上
plot.js_on_event('tap', callback)
# 將Bokeh plot和文本輸入框放在一起顯示
layout = column(plot, text_input)
show(layout)
在上面的例子中,我們創建了一個Bokeh plot和一個文本輸入框,并定義了一個CustomJS回調函數來在點擊Bokeh plot時更新文本輸入框的值。通過將回調函數綁定到Bokeh plot上,我們可以實現動態更新其他HTML元素的效果。