在Bokeh中,可以通過添加工具和回調函數來實現圖表的交互性。
添加工具:Bokeh提供了各種工具,如放大、縮小、平移、選擇、懸停等工具,可以通過將這些工具添加到圖表上來實現交互性。例如,可以通過調用figure.add_tools()
方法來添加工具,然后將這些工具添加到布局中。
添加回調函數:通過添加回調函數,可以在圖表上添加交互式操作,如點擊、鼠標懸停等。可以使用CustomJS
類來創建JavaScript回調函數,并將其與圖表上的事件綁定。例如,可以在圖表上添加一個懸停工具,并為懸停事件添加一個JavaScript回調函數,以顯示相關信息。
示例代碼:
from bokeh.plotting import figure, output_file, show
from bokeh.models import HoverTool, ColumnDataSource, CustomJS
# 創建數據源
source = ColumnDataSource(data=dict(x=[1, 2, 3, 4], y=[1, 4, 9, 16]))
# 創建圖表
p = figure()
p.circle('x', 'y', source=source)
# 添加懸停工具和JavaScript回調函數
hover = HoverTool(tooltips=[("x", "@x"), ("y", "@y")])
hover.callback = CustomJS(code="console.log('hovered')")
p.add_tools(hover)
output_file("interactive_plot.html")
show(p)
在這個示例中,我們創建了一個簡單的散點圖,并添加了一個懸停工具和一個JavaScript回調函數來在控制臺打印消息。您可以根據需求添加更多的工具和回調函數來實現更豐富的交互性。