У меня есть участок Bokeh, где я добавляю некоторые данные в виде LabelSet и BoxAnnotation в качестве наложения, но я хочу иметь возможность динамически включать/отключать этот оверлей.скрывать аннотации в bokeh
Я могу включить/скрыть некоторые из строк на графике already, но система для аннотаций, похоже, отличается. У меня до сих пор уже
Инициализацияfrom ipywidgets import interact
from bokeh.plotting import figure as bf
from bokeh.layouts import layout as bl
from bokeh.models import Toggle, BoxAnnotation, CustomJS
from bokeh.io import push_notebook, show, output_notebook
output_notebook()
поколение Widget
p = bf(title='test', x_range=(0,1), y_range=(0,1))
x = [1/3, 2/3]
y=[1/3, 2/3]
p.circle(x=x, y=y, size=15)
box = BoxAnnotation(left=None, right=0.5, fill_color='red', fill_alpha=0.1)
p.add_layout(box)
Интерактивность
code = '''\
if toggle.active
box.visible = true
console.log 'enabling box'
else
box.visible = false
console.log 'disabling box'
'''
callback = CustomJS.from_coffeescript(code=code, args={})
toggle = Toggle(label="Red Box", button_type="success", callback=callback)
callback.args = {'toggle': toggle, 'box': box}
layout = bl([p], [toggle])
show(layout)
Когда я проверяю консоль JS, то если/иначе пункты получить срабатывает как и ожидалось, поэтому работает Toggle
, но красный ящик остается на месте, как в Firefox, так и в IE