Bokeh布局中的DataTable强制在行中留空

时间:2019-10-16 17:58:31

标签: python bokeh

我正在使用Bokeh gridplot来布置图形,小部件和数据表。 升级到Bokeh 1.3.4之后,我的布局发生了变化,在两者之间插入了空格 图和复选框组。参见下面的截图:

enter image description here

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

如何修改布局以使复选框组直接位于图形附近(并在表格上方)?

1 个答案:

答案 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时这不是有效的属性。