我尝试组合几个不同的小部件来控制绘图,您可以在其中选择轴并更改输入值参数。我把它组织起来,我觉得它应该是如此,但它并没有顺利排列任何不同的小部件。
如何以相对干净的方式完成这项工作?我的代码在下面,我输出到笔记本。谢谢!
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)
答案 0 :(得分:0)
您在一行中有4列(单个小部件,例如您的示例中的Radiogroups会自动包含在Widgetbox对象中,就像一个列)。 列在同一行内彼此对齐,这并不一定意味着其中的元素将水平对齐。
您应该尝试在一列中执行3行,这可能需要删除radiogroup并使用单独的radiobuttons:
column(row(button1,button1.2,slider1,text1),row(button2,button2.2,slider2,text2),row(button3,button3.2,slider3,text3))
或与gridplot等效:
gridplot([[button1,button1.2,slider1,text1],[button2,button2.2,slider2,text2],[button3,button3.2,slider3,text3]])