我有很多ipywidgets滑块连接到图表,我想将它们放在布局的左侧。除此之外,输出图应位于右侧,以优化空间并提高可用性。
没有分层的结果如下图所示:
无分层的结果
您是否有任何解决方案可以将滑块放在左侧,输出放在右侧?
我已经尝试过使用交互式的HBox + VBox:
inter = wgt.interactive(f_arctan2,va=wgt.FloatSlider(min=-5.,max=5.,step=0.5,value=1.5),vb=wgt.FloatSlider(min=-6,max=6,step=0.5,value=0),
va2= wgt.FloatSlider(min=-5.,max=5.,step=0.5,value=-1), vb2= wgt.FloatSlider(min=-5.,max=5.,step=0.5,value=-3) )
display(wgt.HBox(wgt.VBox(inter.children[:-1]),inter.children[-1]))
但是有一个元组错误
TypeError:init() 需要 1 到 2 个位置参数,但 3 个 被给予
同时使用 inter.children.Output() 作为第二个参数不起作用。
我找到的最好的解决方案是将HBox与VBox结合使用。
下面是一个示例:
labels = Label(y= x_labels , x= [0,0,0,0,0], scales={'y': x_ord , 'x': y_sc}, x_offset = -49, y_offset = 7,colors=['white','white','white', 'white','white'], default_size=24, update_on_move=True)
histogram = Figure(marks=[bar,labels], axes=[ax_x,ax_y], background_style = {'fill': 'White'},title=total, min_height = 50, title_style ={'font-size': '30px'})
ui = wgt.HBox([wgt.VBox([logo_w,company_w,model_w, aa_w, bb_w, ccc_w,avg_w,event_w]),histogram])
然后,我使用了交互式输出
def f_all(logo,company,...):
....code here...
out = wgt.interactive_output(f_all,{'logo':logo_w,'company': company_w, 'aa':aa_w, ...})
display(ui, out)
希望这对任何人都有帮助:-)