散景未使用所有可用空间

时间:2019-02-28 18:25:32

标签: python bokeh

我已经使用Bokeh进行了可视化,并在27英寸的iMac上进行了测试,一切都很好:

enter image description here

但是,当我在15英寸的笔记本上工作时,我发现事情变得凌乱:

enter image description here

从底部的直方图可以看出,左侧还有更多可用空间,整个带有黑色图像和分类器的“盒子”应该位于此处。我不确定为什么会这样以及如何解决。

代码并不小,但这是我的图形尺寸和所使用的布局:

# black square
pi = figure(plot_width=230, plot_height=160)
# Left histogram
pv = figure(plot_height=380, plot_width=235)
# Tab
p = figure(plot_width=640, plot_height=480)
# Bottom histogram
ph = figure(plot_width=880, plot_height=200

# Layout
l = column(
    row(column(tabs, t_slider),
        column(pi, pv)
       ), 
    ph)
curdoc().add_root(l)

我希望幻灯片+选项卡和黑色正方形+直方图可以并排在两列中,就像使用更大的显示器时一样。我认为由于某些CSS配置,Bokeh并未使用所有可用空间。但是,从底部直方图可以看到有足够的空间将第二个框放置在适当的位置。

1 个答案:

答案 0 :(得分:0)

您需要响应式布局。我相信这应该可行:

from bokeh.layouts import layout

l = layout(
    [
        [tabs, t_slider, pi, pv],
        [ph]
    ],
    sizing_mode="stretch_both"
)

如果要保持宽高比,可以使用sizing_mode="scale_both"

有关不同的sizing_mode选项的更多信息在文档中:  https://bokeh.pydata.org/en/latest/docs/reference/models/layouts.html#bokeh.models.layouts.LayoutDOM.sizing_mode