如何在带有一些空单元格的 Bokeh 中创建绘图网格
how to create a grid of plots in Bokeh w/ some empty cell(s)
我知道在 Bokeh 中将图组合在一起的 2 种不同方法:网格和 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 的新功能。
Bokeh 0.7.1(将于下周一发布)将在 grid pot 规范中允许 None
。
我知道在 Bokeh 中将图组合在一起的 2 种不同方法:网格和 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 的新功能。
Bokeh 0.7.1(将于下周一发布)将在 grid pot 规范中允许 None
。