Warning
The plotting api was recently changed as of version 0.7. Some old functions (for instance, hold) are now deprecated but still function. They will be completely removed in the next release. Using python -Wd when running Bokeh code will enable printing of deprecation warnings.
To access the plotting.py interface:
# Clean alias
import bokeh.plotting as bk
# Alternatively, import plotting functions into the namespace
from bokeh.plotting import *
To select an output mode:
# Plots can be displayed inline in an IPython Notebook
bk.output_notebook()
# They can also be saved to file
bk.output_file("output_filename.html", title="Hello World!")
To create a new Bokeh plot (with optional plot parameters) use the figure function:
p = bk.figure(plot_width=600, # in units of px
plot_height=600,
title="Hello World!")
The plot objects returned by figure have methods on them for plotting all the different kinds of glyphs. A simple and common glyph is the line:
xs = [0,1,2,3,4,5]
ys = [x**2 for x in xs]
p.line(xs, ys, line_width=2)
Note
At the moment, the glyph functions are vectorized by default. If you want to plot a single glyph, you will still have to pass in the parameters as a list. For example: p.circle([0], [0], radius=[1]).
To add subsequent glyphs on the same plot, use glyph methods on that plot:
p.rect(x, y, w, h)
p.circle(x, y)
To save a plot to file:
# Assuming you have already declared `output_file()` above
bk.save(obj=p)
To show a plot:
bk.show(p)
Begin by importing bokeh.plotting into your namespace. In this guide it is aliased to bk for clarity.
import bokeh.plotting as bk
Then choose an output mode—see Session Management for more information. If you are in an IPython Notebook and want to display plots inline:
bk.output_notebook()
Else, if you are in a script and want to save these plots to file:
bk.output_file("output_filename.html", title="Hello World!")
Subsequent calls to save() and show() will depend on the output mode.
Bokeh plots are composed of “glyphs”, which are semi-primitive visual markers. Each glyph has specified parameters for placement and styling. You can refer to bokeh.models.glyphs and bokeh.models.markers to see all the glyphs that are currently supported, and to bokeh.plotting Interface to see how they are configured for the plotting.py interface.
Note
Parameters are not completely uniform across glyphs. for example, a rect glyph requires x- and y-coordinates (to define the center point) as well as width and height parameters, while the quad glyph takes a parameter each for the left, right, top, and bottom sides of a quad:
zeros = [0] * len(xs)
ones = [1] * len(xs)
p.rect(xs, # x-coordinates
ys, # y-coordinates
ones, # widths
ones, # heights
fill_color="steelblue")
p.quad(xs[:-1], # left
xs[1:], # right
ys[:-1], # top
ones[:-1], # bottom
fill_color="crimson")
Each glyph also has a number of styling properties (see Styling), with the associated prefixes line_, fill_, and text_:
p.circle(xs, ys,
size=ys, # px
fill_alpha=0.5,
fill_color="steelblue",
line_alpha=0.8,
line_color="crimson")
Many glyphs have both line and fill properties that can be set in unison by dropping the prefix:
p.circle(xs, ys,
size=ys, # px
alpha=0.5,
color="steelblue")
Bokeh plots can be saved to file, persisted to the server, or displayed inline in an IPython Notebook.
To save the current plots to file:
# If you have already declared `output_file()` above
bk.save(obj=p)
# Else, specify the filename
bk.save(p, filename="output_filename.html")
To show a plot:
bk.show(p)