维护人员的注意: pyscript支持被废弃,并将在Bokeh2.0中删除
我目前正在学习Python,并试图制作一个在浏览器上运行的交互式仪表板。我使用Bokeh进行可视化,使用flexx/pyscript进行回调交互。第一个目标是创建一个筛选数据集的按钮。我尝试使用滑块示例
我对其进行了修改,只需单击一个按钮就可以更改数据(实际过滤将是步骤2)。
x = [1,2,3] # dummy data
y = [4,5,6] # dummy data
# output to static HTML file
# output_file("sample.html", title="sample")
source = ColumnDataSource(data=dict(x=x, y=y))
# create a new plot with a title and axis labels
plot = Figure(plot_width=400, plot_height=400)
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)
def callback(source=source):
data = source.get('data')
f = cb_obj.get('value')
x, y = data['x'], data['y']
x = [0.9,0.8,0,7]
y = [1,2,3]
source.trigger('change')
button = Button(callback=CustomJS.from_py_func(callback))
button.on_click(source)
layout = vform(button, plot)
show(layout)
页面加载后,我可以单击按钮,但不会触发对情节的更改。您知道如何修改此代码以便通过使用bokeh按钮事件处理程序触发和实际更改吗?我搜索了很多网站,但我找不到一个很好的例子。
提前感谢!
发布于 2016-05-08 02:22:34
您只需实际更新数据源上的数据即可。
def callback(source=source):
data = source.get('data')
f = cb_obj.get('value')
data['x'] = [0.9, 0.8, 0,7]
data['y'] = [1, 2, 3 ]
source.trigger('change')
代码只创建新的vars、x
和y
,然后立即覆盖它们。这实际上并没有更新.data
,这正是需要发生的事情。
https://stackoverflow.com/questions/37098265
复制相似问题