我正在使用Bokeh gridplot
来布置图形,小部件和数据表。
升级到Bokeh 1.3.4之后,我的布局发生了变化,在两者之间插入了空格
图和复选框组。参见下面的截图:
width=1000
中的DataTable
似乎在强制使用空格。如果我删除了DataTable
,则布局会正确显示,并且复选框组直接位于径向图上。
这是我与布局相关的代码:
#-------------------------------------------------------------------------------
# LAYOUT
#-------------------------------------------------------------------------------
hor_layout_date_slider = (
row(
column(blank_wb),
column(date_slider_wb),
)
)
hor_layout_time_cb = (
row(
column(div_time),
column(rg_time),
)
)
vert_layout_1 = (
column(
row(div_zone),
row(cb_zone),
row(div_trigger),
row(cb_trigger),
)
)
vert_layout_2 = (
column(
row(div_location),
row(cb_location),
row(div_type),
row(cb_type),
)
)
grid = gridplot(
children = [
[hor_layout_date_slider],
[hor_layout_time_cb],
[scatter_fig, vert_layout_1, vert_layout_2],
[data_table]
],
toolbar_options=dict(logo=None),
sizing_mode='fixed',
)
curdoc().add_root(grid)
每个元素都定义了自己的高度和宽度,所有元素均为sizing_mode='fixed'
。径向图具有width=600, height=600
,并且复选框组每个width=200, height=105
带有Div
个元素,每个元素的标题为width=200, height=15
。
如何修改布局以使复选框组直接位于图形附近(并在表格上方)?
答案 0 :(得分:0)
找到了我自己的问题的解决方案。
如果我使用layout
而不是gridplot
,则一切正常。
注释的代码显示了原始的实现,而新的代码显示了使用layout
的修订的实现:
from bokeh.layouts import gridplot, layout
#grid = gridplot(
#children = [
#[hor_layout_date_slider],
#[hor_layout_time_cb],
#[scatter_fig, vert_layout_1, vert_layout_2],
#[data_table]
#],
#toolbar_options=dict(logo=None),
#sizing_mode='fixed',
#)
grid = layout(
children=[
[hor_layout_date_slider],
[hor_layout_time_cb],
[scatter_fig, vert_layout_1, vert_layout_2],
[data_table]
],
sizing_mode='fixed',
)
请注意,我还必须删除toolbar_options
,因为在使用layout
时这不是有效的属性。