gpt4 book ai didi

javascript - Bokeh:将变量传递给 Widgets 的 CustomJS

转载 作者:数据小太阳 更新时间:2023-10-29 06:16:01 27 4
gpt4 key购买 nike

Bokeh 的一个好处是可以从 Python 层指定回调,从而在不需要 bokeh-server 的情况下在 javascript 级别产生操作。因此,可以创建在浏览器中运行的交互式小部件,而无需运行 Ipython 或 Bokeh 服务器。

0.9.3。文档给出了一个示例,我可以在 ipython 笔记本中重现: http://docs.bokeh.org/en/latest/docs/user_guide/interaction.html#cutomjs-for-widgets

from bokeh.io import vform
from bokeh.models import CustomJS, ColumnDataSource, Slider
from bokeh.plotting import figure, output_file, show

output_file("callback.html")
x = [x*0.005 for x in range(0, 200)]
y = x

source = ColumnDataSource(data=dict(x=x, y=y))

plot = figure(plot_width=400, plot_height=400)
plot.line('x', 'y', source=source, line_width=3, line_alpha=0.6)

callback = CustomJS(args=dict(source=source), code="""
var data = source.get('data');
var f = cb_obj.get('value')
x = data['x']
y = data['y']
for (i = 0; i < x.length; i++) {
y[i] = Math.pow(x[i], f)
}
source.trigger('change');
""")

slider = Slider(start=0.1, end=4, value=1, step=.1, title="power", callback=callback)

layout = vform(slider, plot)
show(layout)

我想改编这样的代码来创建一些简单的在线作业。我的问题是如何在不调用 Slider 的情况下将其他变量从 python 直接传递到 javascript。例如,假设我希望 Javascript 成为:

y[i] = Math.pow(x[i], A*f)

其中 A 是在上面的 ipython 代码单元格中定义的(例如 A = 10)。在 javascript 中定义 'var A = 10' 很容易,但我想在 python 中设置 A 和其他变量的值,然后将它们传递到这个 javascript 中。有办法吗?

最佳答案

从 Bokeh 0.9.3 开始,您只能传递“Bokeh 模型”(例如数据源和渲染器之类的东西),而不能传递任意 python 对象。但是我们正在努力使用可以轻松镜像的简单命名空间概念来扩展 Bokeh 文档。

关于javascript - Bokeh:将变量传递给 Widgets 的 CustomJS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32318890/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com