1 回答
TA贡献1876条经验 获得超5个赞
您正在将滑块的值读入本地 JavaScript 变量中,但实际上并未将其用于任何用途。要影响字形,您实际上需要设置字形的某些属性,或更新驱动字形的数据。为此,您可以在dict 中传递Bokeh 对象args(像您所做的那样传递纯 python 值通常没有意义)。
此外,该.get语法很久以前就被删除了,除非您使用的是 Bokeh 的古老版本,否则您应该使用cb_obj.value.
这是一个使用 Bokeh > 1.0 测试的完整示例
from bokeh.plotting import figure, show
from bokeh.models import CustomJS, Slider
from bokeh.layouts import column
import pandas as pd
source = pd.DataFrame([[1, 2], [3, 5], [3, 4]], columns=['a','b'])
p = figure()
r = p.circle(x='a', y='b', source=source, radius=0.3)
callback = CustomJS(args=dict(renderer=r), code="""
renderer.glyph.radius = cb_obj.value;
""")
slider = Slider(start=0.1, end=1.0, value=0.3, step=.05, title="Circle-radius")
slider.js_on_change('value', callback)
show(column(p, slider))
最后,虽然callbackBokeh 1.x 仍然支持该属性,但它很快就会被弃用。新代码应该使用js_on_change上面显示的一般方法。
添加回答
举报