我知道在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的新功能。
答案 0 :(得分:3)
Bokeh 0.7.1(将在下周一发布)将允许None
在网格锅规范中。