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上面顯示的一般方法。
添加回答
舉報