在Bokeh中,如果您尝试从CustomJS回调中访问轴标签,可能会引发错误。然而,您可以通过将轴标签作为参数传递给CustomJS来解决此问题。
下面是一个示例代码,展示了如何从CustomJS中访问轴标签:
from bokeh.plotting import figure, show
from bokeh.models import CustomJS, Slider
from bokeh.layouts import column
# 创建一个图形对象
p = figure()
# 创建一个滑块对象
slider = Slider(start=0, end=10, step=0.1, value=5, title="Slider")
# 在图形对象中添加一个轴,并将标签设置为滑块的当前值
p.xaxis.axis_label = str(slider.value)
# 创建一个CustomJS回调函数
callback = CustomJS(args=dict(slider=slider, xaxis=p.xaxis[0]), code="""
// 从滑块对象中获取当前值
var value = slider.value;
// 将轴标签设置为当前值
xaxis.axis_label = value.toString();
""")
# 将回调函数与滑块对象关联
slider.js_on_change('value', callback)
# 创建一个布局,包含图形对象和滑块对象
layout = column(p, slider)
# 显示布局
show(layout)
在这个示例中,我们创建了一个图形对象p
和一个滑块对象slider
。然后,我们在图形对象的x轴上添加了一个轴,并将其标签设置为滑块的当前值。然后,我们创建了一个CustomJS回调函数,该函数从滑块对象中获取当前值,并将该值作为轴标签的新值。最后,我们将回调函数与滑块对象关联,并创建一个包含图形对象和滑块对象的布局。
下一篇:Bokeh - Div 不更新