首页 文章

散景服务器:自定义行比率

提问于
浏览
4

我正在使用Bokeh来暂时保存科学数据,但我无法按照自己的意愿自定义我的布局 .

from bokeh.plotting import figure
from bokeh.io import show
from bokeh.layouts import row
from bokeh.models.widgets import Button

tools_to_show = 'hover, box_zoom, save, reset, pan'
p = figure(tools=tools_to_show, output_backend = "webgl")
p.line([1, 2, 3, 4], [9, 5, 7, 6])

b_valid = Button(label="valid")

my_plot = row(p, b_valid, sizing_mode="stretch_both")

show(my_plot)

我有一个情节区域和控制区域 . 控制区域应该更小,可能是可用宽度的1/3,以使绘图具有更大的区域(可用宽度的2/3) .

我正在使用sizing_mode =“stretch_both”来确保使用屏幕中的所有可用空间 .

我需要继续使用散景服务器(散景服务myapp.py)来使python回调工作,所以嵌入式解决方案建议here对我不起作用 .

也许有一种方法serving directory与bokeh命令,因为有一个模板机制,但我无法想象如何获得绘图和控件的单独div .

你有什么(简单的)想法吗?

Edit : 似乎它不是散景中目前可用的功能 . 一个有前途的解决方案是能够使用散景服务器放置嵌入模板中的组件:安排milestone

1 回答

  • 1

    我会说,我们正在退出内置布局系统,而不仅仅是非常简单的事情 . PR #7708刚刚合并了即将发布的 0.13.0 . 当 0.13.0 可用时,您可以将单独的文档根分别嵌入到temlates中,例如如果您在Bokeh服务器应用程序中定义五个图:

    curdoc().add_root(p0)
    curdoc().add_root(p1)
    curdoc().add_root(p2)
    curdoc().add_root(p3)
    curdoc().add_root(p4)
    

    它们都可以放在响应式Bootstrap布局中:

    <div class="row">
      <div class="col-sm-8">
        {{ embed(doc.roots[0]) }}
        <br>
      </div>
      <div class="col-sm-4">
        {{ embed(doc.roots[1]) }}
        <br>
      </div>
    </div>
    
    <div class="row">
      <div class="col-sm-4">
        {{ embed(doc.roots[2]) }}
        <br>
      </div>
      <div class="col-sm-4">
        {{ embed(doc.roots[3]) }}
        <br>
      </div>
      <div class="col-sm-4">
        {{ embed(doc.roots[4]) }}
        <br>
      </div>
    </div>
    

    enter image description here

相关问题