2016-09-16 4 views
0

CheckBoxGroupのチェックボックスをチェックするには、ボタンをクリックするか、bokehの別のチェックボックスをチェックしますか?Bokeh - ボタン/チェックボックスコールバックでチェックボックスをチェックする

customJSに渡されたcheckboxgroupのボケオブジェクトが.propで操作することはできませんが、私はjavascriptのjquery check uncheck all checkboxes with a button

にこの溶液を承知しています! また、チェックボックスグループ内の個人のチェックボックスにアクセスする方法もわかりません。 bokehのcheckboxgroupオブジェクトを使ってそれを行う方法がわかりません。 LEN(プロット)は27を=ので

checkbox = CheckboxGroup(labels=[str(i) for i in range(len(plots))],active=range(len(plots)),width=200) 
iterable = [('p'+str(i),plots[i]) for i in range(len(plots))]+[('checkbox',checkbox)] 
code = ''.join(['p'+str(i)+'.visible = '+str(i)+' not in checkbox.active;' for i in range(len(plots))]) 
checkbox.callback = CustomJS(args={key: value for key,value in iterable},lang="coffeescript", code=code) 

checkbox2 = CheckboxGroup(labels=['check all'],active=[0],width=100) 

checkbox2.callback = CustomJS(args={'checkbox':checkbox}, code = """ 
if (0 not in cb_obj.active){ 
    checkbox.set("active",_.range(27); 
} 
checkbox.trigger("change"); 
    """) 

範囲(27):ここ

は、プロット図には異なる散布図を含むリストである、私が試したものです。 私の最初のチェックボックスグループは、図のプロットの可視性のオン/オフをトリガするために完璧に機能します。ただし、2番目のチェックボックスは無効です。

答えて

0

私はこの質問にBigreddotの答えを適応させました:Bokeh widget callback to select all checkboxes CustomJSコールバックからの同様の効果を得るには。

ここでラインの可視性を誘発するチェックボックスを持つ例である、「プロット」図にプロットのリストを仮定:ここ

N_plots = range(len(plots)) 
checkbox = CheckboxGroup(labels=[str(i) for i in N_plots],active=N_plots,width=200) 

iterable = [('p'+str(i),plots[i]) for i in N_plots]+[('checkbox',checkbox)] 

checkbox_code = ''.join(['p'+str(i)+'.visible = checkbox.active.includes('+str(i)+');' for i in N_plots]) 
checkbox.callback = CustomJS(args={key: value for key,value in iterable}, code=checkbox_code) 

は、すべてのチェックボックスをオフにすることができ、ボタンである。

clear_button = Button(label='Clear all') 
clear_button_code = "checkbox.active=[];"+checkbox_code 
clear_button.callback = CustomJS(args={key: value for key,value in iterable}, code=clear_button_code) 

すべてのチェックボックスをオンにするボタンは次のとおりです。

関連する問題