我是新手bokehJS
,我需要根据dropdown
值更新情节。对于初始加载,我使用以下代码添加arrow
绘图布局。但是,每当我更改dropdown
情节上的值时,都会更新,但arrow
会消失。
p.add_layout(Arrow(end=TeeHead(line_width=0), x_start=0, y_start=min(source1.data['y']),
x_end=0, y_end=max(source1.data['y']), line_dash="dashed"))
下面是callback
我写的自定义js:
callback = CustomJS(args=dict(source1=test_vs_control_source1, source2=test_vs_control_source2,
data=data, leg=p.legend.items, tt=p.hover), code=
switch(cb_obj.value) {
case 'Actuals':
// code block
source1.data = data.actual.testgroup;
source2.data = data.actual.controlgroup;
leg[0].label.value = 'Test Group';
leg[1].label.value = 'Control Group'
tt[0].tooltips = "<div>
<span style="font-size: 18px;color:deepskyblue;">T_Post: $x{0,0}</span><br/>
<span style="font-size: 18px;color:orange;">C_Post: $y{0,0}</span>
</div>";
break;
case 'Impact':
// code block
source1.data = data.impact;
source2.data = {'x':[],'y':[]};
leg[0].label.value = 'Impact';
leg[1].label.value = '';
tt[0].tooltips = "<div>
<span style="font-size: 18px;color:deepskyblue;">Impact: $x{0,0}</span>
</div>";
break;
case 'Lift':
// code block
source1.data = data.lift;
source2.data = {'x':[],'y':[]};
leg[0].label.value = 'Lift';
leg[1].label.value = '';
tt[0].tooltips = "<div>
<span style="font-size: 18px;color:deepskyblue;">Lift: $x{0,0}</span>
</div>";
break;
default:
// code block
leg[0].label.value = 'Test Group';
leg[1].label.value = 'Control Group';
tt[0].tooltips = "<div>
<span style="font-size: 18px;color:deepskyblue;">T1_Post: $x{0,0}</span><br/>
<span style="font-size: 18px;color:orange;">C_Post: $y{0,0}</span>
</div>";
source1.data = data.testvscontrol.testgroup;
source2.data = data.testvscontrol.controlgroup;
}
source1.change.emit();
source2.change.emit();
)
如何在 中编辑布局callbackJS
?
注意:我希望这是独立的 html 页面,所以不愿意使用散景服务器。