选择DropDown无法使用JS回调更改ColumnDataSource

时间:2019-08-20 03:26:14

标签: python bokeh

我尝试更改多个参数(参数),但这不起作用。

散景版本为1.3.4。

from bokeh.layouts import column
from bokeh.layouts import column
from bokeh.models import CustomJS, ColumnDataSource, Slider, Select
from bokeh.plotting import Figure, output_notebook, show
import numpy as np
a = 20


bokeh_tools = "pan,wheel_zoom"

output_notebook()
plot_2s = ColumnDataSource(data=dict(x=[1, 2, 3], y=[1, 2, 3]))
plot_3s = ColumnDataSource(data=dict(x=[3, 4, 5], y=[1, 2, 3]))
line_source = ColumnDataSource(data=dict(x=[1, 2, 3], y=[1, 2, 3]))

plot_1 = figure(x_axis_type="datetime", plot_width=800, tools=bokeh_tools, title="plot_1")
plot_1.line(x = 'x', y='y', source=plot_2s)
plot_2 = figure(x_axis_type="datetime", plot_width=800, tools=bokeh_tools, title="plot_2")
plot_2.line(x='x', y='y', source=line_source)

select = Select(title="SELECT", options=["val1", "val2"])
column = column(select, plot_2)
show(column)

select.callback = CustomJS(args={"cds2": plot_2s, "cds3": plot_3s, "ls": line_source}, code="""
         if(cb_obj.value === "val1"){ 
                 ls.data = cds2.data;
         }else if(cb_obj.value === "val2"){
                 ls.data = cds3.data;
         }
         ls.change.emit();
         """)

没有错误消息未实现回调

1 个答案:

答案 0 :(得分:0)

永远不会执行您的回调,因为它永远不会添加到输出中。一旦调用show,就会生成并显示HTML输出。在此之后的所有内容实际上都是空操作,并且就输出而言不存在。通常show应该被最后调用。