如何在 Bokeh 中为多选小部件实现 Javascript 回调

我是 Bokeh 和 Javascript 的新手,我正在尝试在 Bokeh 中实现一个简单的多选小部件。这个想法只是根据用户选择的一个或多个字母(A、B、C)在散点图上显示 x 和 y 数据。在用户选择一个选项之前,图表应该是空的。问题在于 Javascript 回调:当我使用 MultiSelect 小部件选择条目时没有任何反应。代码如下。


from bokeh.models import CustomJS, ColumnDataSource, MultiSelect, Column

from bokeh.plotting import figure, show

import pandas as pd


data = dict(letter = ['A','A','B','C','B','B','A','C','C','B'], 

x = [1, 2, 1, 2, 3, 2, 2, 3, 2, 3], 

y = ['10','20','10','30','10','40','10','30','10','40'])

data = pd.DataFrame(data)


data_source = ColumnDataSource(data)

source = ColumnDataSource(dict(letter = [], x = [], y = []))


plot = figure()

plot.circle('x', 'y', line_width = 2, source = source)


callback = CustomJS(args = {'source': source, 'data_source': data_source},

code = """

var data = data_source

source.data = data[cb_obj.value];

""")


multiselect = MultiSelect(title = 'Choose', value = [], options = ['A', 'B', 'C'])

multiselect.js_on_change('value', callback)


layout = Column(multiselect, plot)

show(layout)


有任何想法吗 ?


翻阅古今
浏览 171回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript