Как выровнять разные виджеты по горизонтали в боке - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь объединить пару разных виджетов, чтобы создать элементы управления для графика, где вы можете выбрать оси и изменить параметры входных значений.Я все организовал так, как мне кажется, но он не выстраивает ни один из разных виджетов плавно.

Виджеты не выстроены в ряд

Как мне сделатьчто работа в относительно чистом виде?Мой код ниже, и я вывожу на ноутбук.Спасибо!

import pandas as pd
from bokeh.plotting import figure, output_file, show
from bokeh.io import output_notebook, show, curdoc
from bokeh.layouts import column, row, gridplot, layout, WidgetBox
from bokeh.models.widgets import CheckboxButtonGroup, Slider, RadioGroup, TextInput


inputs = pd.read_csv("surrogate_inputs.csv")
slider_list = []
variables = []
empty = []
textinp_list = []

for i in range(0,len(inputs.Input)):
  slider = Slider(title=None, start=inputs.Min[i], end=inputs.Max[i], value=inputs.Init[i], step=inputs.Step[i])
  textinput = TextInput(title=None, value=str(slider.value))
  slider_list.append(slider)
  variables.append(inputs.Input[i])
  textinp_list.append(textinput)
  empty.append(" ")

sliders = column(slider_list)
textinp = column(textinp_list)
radio_group_x = RadioGroup(labels=empty, active=0)
radio_group_y = RadioGroup(labels=variables, active=1)
input_section = row([radio_group_x, radio_group_y, sliders, textinp], sizing_mode='scale_height')
show(input_section)

1 Ответ

0 голосов
/ 20 мая 2018

У вас есть 4 столбца в одной строке (отдельные виджеты, такие как Radiogroups в вашем экзамене, автоматически заключаются в объект Widgetbox, который похож на столбец).Столбцы выровнены друг с другом в пределах одной строки, что не обязательно означает, что элементы в ней будут выровнены по горизонтали.

Вместо этого следует попробовать сделать 3 строки в одном столбце, что может потребовать удаления радиогруппы и иметьотдельные радиокнопки:

column(row(button1,button1.2,slider1,text1),row(button2,button2.2,slider2,text2),row(button3,button3.2,slider3,text3))

или эквивалентно с сеткой:

gridplot([[button1,button1.2,slider1,text1],[button2,button2.2,slider2,text2],[button3,button3.2,slider3,text3]])
...