第一步 6:组合图表#

之前的步骤指南 中,您创建了单个图表。

在本节中,您将把多个图表组合成不同类型的布局。

创建行、列和网格#

组合单个图表的 easiest 方式是将它们分配到行或列。

例如

要将多个图表组合成水平行布局,您首先需要导入 row。然后在调用 show() 时使用 row() 函数

from bokeh.layouts import row
from bokeh.plotting import figure, show

# prepare some data
x = list(range(11))
y0 = x
y1 = [10 - i for i in x]
y2 = [abs(i - 5) for i in x]

# create three plots with one renderer each
s1 = figure(width=250, height=250, background_fill_color="#fafafa")
s1.scatter(x, y0, marker="circle", size=12, color="#53777a", alpha=0.8)

s2 = figure(width=250, height=250, background_fill_color="#fafafa")
s2.scatter(x, y1, marker="triangle", size=12, color="#c02942", alpha=0.8)

s3 = figure(width=250, height=250, background_fill_color="#fafafa")
s3.scatter(x, y2, marker="square", size=12, color="#d95b43", alpha=0.8)

# put the results in a row and show
show(row(s1, s2, s3))

要将多个图表显示在垂直列布局中,请使用 column() 函数代替。

在 Bokeh 中排列元素的更灵活方法是使用 gridplot() 函数。

另请参阅

有关 row()column()gridplot() 的更多信息,请参阅用户指南中的 网格和布局

定义大小行为#

您可以使用函数 row()column()gridplot() 以及其他参数来定义 Bokeh 如何缩放单个图表。请参阅 sizing_mode 以获取 Bokeh 支持的所有大小模式的列表。

例如:要使行中的所有图表响应式地填充浏览器窗口的可用宽度,请将 scale_width 分配给 sizing_mode

from bokeh.layouts import row
from bokeh.plotting import figure, show

# prepare some data
x = list(range(11))
y0 = x
y1 = [10 - i for i in x]
y2 = [abs(i - 5) for i in x]

# create three plots with one renderer each
s1 = figure(width=250, height=250, background_fill_color="#fafafa")
s1.scatter(x, y0, marker="circle", size=12, color="#53777a", alpha=0.8)

s2 = figure(width=250, height=250, background_fill_color="#fafafa")
s2.scatter(x, y1, marker="triangle", size=12, color="#c02942", alpha=0.8)

s3 = figure(width=250, height=250, background_fill_color="#fafafa")
s3.scatter(x, y2, marker="square", size=12, color="#d95b43", alpha=0.8)

# put the results in a row that automatically adjusts
# to the browser window's width
show(row(children=[s1, s2, s3], sizing_mode="scale_width"))

另请参阅

有关大小模式的更多信息,请参阅用户指南中的 大小模式