Интерактивный график jupyter с использованием ipywidgets слева

У меня много ползунков 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 () в качестве второго параметра не работает.


person Nicolas Martin    schedule 19.04.2018    source источник
comment
пожалуйста, добавьте пример полностью исполняемого кода   -  person Zephro    schedule 19.04.2018


Ответы (1)


Лучшее решение, которое я нашел, - использовать 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)

Надеюсь, это поможет кому-нибудь :-)

person Nicolas Martin    schedule 23.05.2018