如何在Bokeh w /一些空单元格中创建一个图形网格

时间:2015-01-05 15:35:51

标签: python bokeh

我知道在Bokeh中将图表组合在一起的两种不同方法:Grid和HBox / VBox。我想有一个创建n x m网格的一般方法,其中网格的某些单元格可以为空。例如,如果每个X都是一个情节图,可能想要:

X X X
  X
X X X

我还没有找到一般方法来做到这一点。假设我创建了以下的图:

import numpy as np
import bokeh.plotting as bp
from bokeh.models import GridPlot

bp.output_file("/tmp/test.html", "test")

def random_plot (width, height, k=100):
    x = np.arange(k)
    y = np.random.normal(size=k)
    plot = bp.figure (
        plot_width=width, plot_height=height, title=None,
        toolbar_location=None)
    plot.line(x,y)
    return plot

UL = random_plot(width=300, height=400)
UR = random_plot(width=600, height=400)
LL = random_plot(width=300, height=200)
LR = random_plot(width=600, height=200)

我不能使用GridPlot(据我所知)用以下方法创建一个情节:

UL UR
   LR

以下不起作用:

grid = GridPlot(children=[[UL, UR], [None, LR]])
bp.show (grid)

我可以使用HBox和VBox的组合来实现上面的简单布局:

left = bp.VBox(children=[UL])
right = bp.VBox(children=[UR,LR])
combined = bp.HBox (children=[left,right])
bp.show(combined)

但是,无法处理更复杂的情况,例如上面显示的3 x 3配置。

我想要数字对齐。我可以将一个不可见的元素放入网格中以满足丢失的单元格吗?如果是这样,怎么样?

更新
事实上,其他人已经在Bokeh邮件列表上请求了这个(并且它似乎目前不受支持)。希望很快成为GridPlot的新功能。

1 个答案:

答案 0 :(得分:3)

Bokeh 0.7.1(将在下周一发布)将允许None在网格锅规范中。