#bokeh
Вопрос:
На данный момент я пытаюсь просто снять флажок Боке с помощью пользовательской кнопки.
Но я получаю неожиданные результаты: Флажки не создаются в отмеченном состоянии, и кнопка не снимает флажки.
Это потому, что я неправильно active
понимаю атрибут?
from bokeh.models.widgets import CheckboxGroup, Button from bokeh.layouts import column from bokeh.io import curdoc from bokeh.plotting import show checkbox_group_1 = CheckboxGroup(labels=["Group 1 Button"], active=[1]) checkbox_group_2 = CheckboxGroup(labels=["Group 2 Button A", "Group 2 Button B"], active=[1,1]) checkbox_group_3 = CheckboxGroup(labels=["Group 3 Button A", "Group 3 Button B"], active=[1,1]) button = Button(label="Foo", button_type="success") def buttonclick(): checkbox_group_1.active = [0] checkbox_group_2.active = [0,0] checkbox_group_3.active = [0,0] button.on_click(buttonclick) layout=column(checkbox_group_1,checkbox_group_2,checkbox_group_3, button) curdoc().add_root(layout) !powershell -command {'bokeh serve --show Buttoninteraction.ipynb'} #I'm working within Jupyter notebook.
В идеале я хотел бы, чтобы флажки снимались, когда один из другой группы отмечен. Буду признателен за любую помощь.
Ответ №1:
active
Атрибут представляет собой список, в котором указывается индекс выбранных элементов. Поэтому, чтобы отменить их выбор, просто используйте checkbox_group.active = []
from bokeh.models.widgets import CheckboxGroup, Button from bokeh.layouts import column from bokeh.io import curdoc from bokeh.plotting import show checkbox_group_1 = CheckboxGroup(labels = ["Group 1 Button"], active = [0]) checkbox_group_2 = CheckboxGroup(labels = ["Group 2 Button A", "Group 2 Button B"], active = [1]) checkbox_group_3 = CheckboxGroup(labels = ["Group 3 Button A", "Group 3 Button B"], active = [1]) button = Button(label = "Foo", button_type = "success") def buttonclick(): checkbox_group_1.active = [] checkbox_group_2.active = [] checkbox_group_3.active = [] button.on_click(buttonclick) layout = column(checkbox_group_1, checkbox_group_2, checkbox_group_3, button) curdoc().add_root(layout)
Пример active
значения для checkbox_group_2:
value selected [0] first [1] second [0, 1] both [] None
Комментарии:
1. Спасибо вам за помощь!