29 March 2018
We are pleased to announce the release of Bokeh 0.12.15!
This release has the following highlights:
Plus several other bug fixes and documentation improvements. For full details, see the CHANGELOG and Release Notes. Additionally, examples for each release are uploaded to CDN. Click here to download.
If you are using
Anaconda, Bokeh can most easily be installed
by executing the command
conda install -c bokeh bokeh . Otherwise, use
pip install bokeh.
Perhaps the biggest news of this release cycle did not involve any code at all: Bokeh joins NumFOCUS Sponsored Projects. Over the years Bokeh has enjoyed generous financial support from the DARPA XData Initiative and from Anaconda, Inc. However, it has always been a goal to have Bokeh join NumFOCUS in order to place it within an even wider Open-Source Community.
Non-profit NumFOCUS helps shoulder the burden of financial and orther obligations around administering Open Source, leaving project committees to decide how best to utilize available funds. The Bokeh committee is composed of:
Now that it is easier than ever, if you or your company find value in Bokeh, please consider making a donation to directly support its development.
#4786: Add a hex tiling glyph
has been open for two years, but it wasn’t until recently that all the necessary things (i.e.
aspect ratio control) were in place. This release sees the addition of a new
glyph. Hexagonal tilings are useful for several things including binned aggregations
such as these plots of one million NCAA shots:
These were created by binning manually and using
Hextile directly, however it’s often even simpler.
hexbin method for basic hexagonal binning has been added to the
x = 2 + 2*np.random.standard_normal(n) y = 2 + 2*np.random.standard_normal(n) p.hexbin(x, y, size=0.5, hover_color="pink", hover_alpha=0.8)
For more sophisticated use-cases, such as scaling individual tiles by another quantity,
you can use
HexTile directly, or look for new features based on this coming soon to HoloViews.
One of the most useful features of Bokeh is the ability to access and inspect the selections users make with various selection tools. For several years, this information has been available in a complicated and hard to manage plain dictionary structure:
# OLD WAYS source.selected['0d']['indices'].flag source.selected['1d']['indices']
This has needed improvement for a long time. Happily, Claire
Tang decided to tackle this issue, and now there is a proper Bokeh model
# NEW WAYS source.selected.indices source.selected.line_indices
It’s much clearer (and simpler to document) what property corresponds to a particular
kind of selection. Look for
selected.image_indices for image hit testing support to
be added in the next release.
A quick note: Although existing code for reading selection continues to work (and
will for the forseeable future), it was not possible to maintain
compatibility for writing selections. If you need to programmatically set a selection
CustomJS or Bokeh server callback, you must use new
Selection models directly.
A few releases ago we were pleased to announce Bokeh compatibility with the new
JupyterLab project. At the time, we had the resources to get basic plots and apps
functioning, but not the
push_notebook feature. I am happy to
report that Luke Canavan pushed new work on the Bokeh JupyterLab extension, and it is
now on par with classic notebook support, including
As mentioned in previously, we are reaching a point of relative stability with respect to Bokeh development. The major tasks for the next few Bokeh releases are these:
In addition to this, we hope to accomplish as much bug fixing, polishing, and documentation as possible in the coming few months.
As we get closer to a Bokeh 1.0 release, I’d like to thank the 287 total contributors who have helped make Bokeh such an amazing project. If you’re interested in helping out, drop by the Dev Chat Channel!
Bryan Van de Ven