This docs on this page refers to a PREVIOUS VERSION. For the latest stable release, go to https://docs.bokeh.org/

Archived docs for versions <= 1.0.4 have had to be modified from their original published configuration, and may be missing some features (e.g. source listing)

All users are encourage to update to version 1.1 or later, as soon as they are able.

Bokeh Docs

0.11.0 (Jan 2016)

Bokeh Version 0.11.0 is a large release with many new improvements

  • New Tornado and websocket-based Bokeh Server
    • bokeh command line tool for creating applications
    • expanded docs including deployment guidance
    • video demonstrations and tutorials
    • supports async, periodic, timeout and model event callbacks
    • python client API
  • User-Defined Models allowing anyone to extend Bokeh
  • GeoJSON data source and map tiles renderer
  • WebGL support for rendering lines
  • Python -> JS compilation for CustomJS callbacks (Py3 only for now)
  • New general push_notebook() based on Jupyter comms
  • Updates to charts
    • all legacy charts converted
    • more examples and expanded docs
  • UX improvements
    • configurable and “auto” range bounds
    • wheel zoom scroll capture turned off by default
    • hover policy for glyphs
    • responsive improvements
  • Known issues
    • annulus glyph does not render correctly on IE and Edge
  • many small bug fixes

Known Issues

Server output in the Jupyter notebook with output_server is currently not functioning correctly, and will be fixed in a follow on 0.11.1 release shortly. However, new notebook comms can enable many of the same kinds of interactions and notebook-based apps without a Bokeh server.

The Image glyph does not currently work with the Bokeh server, and will be fixed in a follow on 0.11.1 release shortly.

Migration Guide

The previous Flask-based bokeh-server has been completely removed and replaced with the new bokeh serve based on Tornado and a websocket protocol. If you require to use bokeh-server you will have to remain on Bokeh version 0.10.0 or lower.

All “old-style” charts in bokeh._legacy_charts have been updated to use the more consistent and powerful bokeh.charts interface, and bokeh._legacy_charts has been removed.

Bokeh deprecation warnings, which are not enabled by default python, have now been unconditionally enabled and are always displayed.

ColumnDataSource.push_notebook() has been deprecated (but still works) in favor of the more general bokeh.io.push_notebook() base on Jupyter notebook websocket comms.

The following modules have been deprecated (but still work), with new counterparts as described in this table:

Old location New location
bokeh.browserlib bokeh.util.browser
bokeh.properties bokeh.core.properties
bokeh.mixins bokeh.core.property_mixins
bokeh.plotting_helpers bokeh.plotting.helpers
bokeh.templates bokeh.core.templates

Additionally, the following modules that should not be of interest to general users have been moved immediately, without deprecation:

Old location New location
bokeh._json_encoder bokeh.core.json_encoder
bokeh.compat bokeh.core.compat
bokeh.enums bokeh.core.enums
bokeh.query bokeh.core.query
bokeh.state bokeh.core.state
bokeh.validation bokeh.core.validation

If you have been using file_html and manually passing in js_resources or css_resources, your call will no longer work. You can still do this, but you pass a tuple to the resources argument.

Before:

html = file_html(layout, None, title=title, template=template, js_resources=js_resources, css_resources=css_resources)

v0.11:

html = file_html(layout, resources=(js_resources, css_resources), title=title, template=template)

Note you can pass None in place of either js_resources or css_resources.