从jupyter noteb中的bokeh小部件访问数据

2024-04-25 12:59:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我想使用一个自动完成的jupyter笔记本中的文本输入小部件。因此,我使用了来自^{AutocompleteInput()。在

from bokeh.models.widgets.inputs import AutocompleteInput
from bokeh.io import output_notebook
from bokeh.plotting import show

output_notebook()

txt_input = AutocompleteInput(completions=['val1', 'val2'])
show(txt_input)

Displaying the widget and autocompletion works fine,但如何在更改时访问输入小部件的值?txt_input.value只返回默认值(空字符串)。在


Tags: from文本importtxtinputoutput部件models
1条回答
网友
1楼 · 发布于 2024-04-25 12:59:24

从Bokeh0.12.3开始,Jupyter笔记本中Bokeh小部件的更完整的集成是still an open issue。在

然而,也有一些变通方法,尽管它们可能被认为有些笨拙。下面是一个CustomJS回调,您可以传递给将设置python值的小部件:

from bokeh.models import CustomJS

callback = CustomJS(code="""
if (IPython.notebook.kernel !== undefined) {
    var kernel = IPython.notebook.kernel;
    cmd = "widget_value = '" + cb_obj.value + "'";
    kernel.execute(cmd, {}, {});
}
""")

结果如下:

enter image description here


CustomJS代码中cmd变量的值是将在当前运行的Jupyter内核中执行的python代码字符串。如果需要调用一些python函数,例如,也可以这样做。在

相关问题 更多 >