In the previous first steps guides, you created individual plots.
In this section, you will combine several plots into different kinds of layouts.
The easiest way to combine individual plots is to assign them to rows or columns.
For example:
To combine several plots into a horizontal row layout, you first need to import row. Then use the row() function when calling show():
row
row()
show()
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(plot_width=250, plot_height=250, background_fill_color="#fafafa") s1.circle(x, y0, size=12, color="#53777a", alpha=0.8) s2 = figure(plot_width=250, plot_height=250, background_fill_color="#fafafa") s2.triangle(x, y1, size=12, color="#c02942", alpha=0.8) s3 = figure(plot_width=250, plot_height=250, background_fill_color="#fafafa") s3.square(x, y2, size=12, color="#d95b43", alpha=0.8) # put the results in a row and show show(row(s1, s2, s3))
To display several plots in a vertical column layout, use the column() function instead.
column()
A more flexible way to arrange elements in Bokeh is to use the gridplot() function.
gridplot()
See also
For more information on row(), column(), and gridplot(), see Creating layouts in the user guide.
You can use the functions row(), column(), and gridplot() with additional arguments to define how Bokeh scales the individual plots. See sizing_mode for a list of all sizing modes that Bokeh supports.
sizing_mode
For example: To make all plots in a row responsively fill the available width of the browser window, assign scale_width to sizing_mode:
scale_width
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(plot_width=250, plot_height=250, background_fill_color="#fafafa") s1.circle(x, y0, size=12, color="#53777a", alpha=0.8) s2 = figure(plot_width=250, plot_height=250, background_fill_color="#fafafa") s2.triangle(x, y1, size=12, color="#c02942", alpha=0.8) s3 = figure(plot_width=250, plot_height=250, background_fill_color="#fafafa") s3.square(x, y2, 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"))
For more information on sizing modes, see Sizing modes in the user guide.
Previous
Next