User guide

In this user guide, you will find detailed descriptions and examples that describe many common tasks that you can accomplish with Bokeh. To get started with Bokeh, you should first completed the steps described in Installing Bokeh.


See the First steps guides for quick tutorials that walk you through Bokeh’s basic functionalities and concepts. This is the easiest and quickest way to get going with Bokeh.

This user guide is arranged by topic:

Defining key concepts

Learn important foundational concepts about how Bokeh is organized.

Plotting with basic glyphs

Make different kinds of plots using the simple but flexible glyph methods from the bokeh.plotting interface.

Providing data

Provide data or subsets of data for plots and tables and share data between plots.

Creating layouts

Combine multiple plots and widgets into specified layouts.

Handling categorical data

Handle categorical data with a variety of different techniques such as bar charts, categorical heatmaps, visual dodging, and jitter.

Visualizing network graphs

Create network graph visualizations with configurable node and edge interactions.

Mapping geo data

Working with geographical data—Google Maps, GeoJSON, Tile Rendering.

Configuring plot tools

Make interactive tools (like pan, zoom, select, and others) available on your plots.

Styling visual attributes

Customize every visual aspect of Bokeh plots—axes, grids, labels, glyphs, and more.

Adding annotations

Add informational annotations, such as labels, arrows, and legends to plots.

Making Interactions

Create more sophisticated interactions including widgets or linked panning and selection.

Running a Bokeh server

Deploy the Bokeh Server to build and publish sophisticated data applications.

Using with Jupyter

Integrate with the Jupyter ecosystem.

Exporting plots

Learn how to export Bokeh layouts as PNGs and SVGs.

Embedding Bokeh content

Embed static or server-based Bokeh plots and widgets into HTML documents in a variety of ways.

Using the command line

Use Bokeh’s capabilities from the command line with the bokeh command.

Extending Bokeh

Add new capability to Bokeh with custom user extensions.

Accelerating with WebGL

Improve performance for large datasets by using WebGL.

Exploring other tools

Use Bokeh together with libraries such as Datashader and HoloViews.

Developing with JavaScript

Create plots in JavaScript by using BokehJS directly.

The user guide contains a lot of examples. They are as minimal as possible and usually focus on highlighting one functionality or concept each. You can copy and paste those examples into your own development environment. With only a handful of exceptions, you will need no external libraries to run the examples.