Python & Bokeh

Bokeh logo

Python is an incredibly powerful and versatile scripting language that is used by academics across the University of Oxford and even provides the backend for several world famous webservices. It's this ubiquity of the language, most webservers have Python installed by default, that makes Python an attractive technology to invest time in learning.

Many Python users depend on the Jupyter Notebook interface to develop their code in, which allows code-enriched documents to be created. Jupyter notebooks support the embedding of figures generated from matplotlib - arguably the most popular package for static visualisations in the Python ecosystem.

Few users are aware of the Bokeh framework, which allows rich interactive visualisations to be produced directly from Python.


Bokeh provides a framework for building interactive charts directly from Python, it's thoroughly documented at Bokeh has its own chart specification language, but the real benefit of using Bokeh comes from leveraging matplotlib.

Bokeh can convert matplotlib charts into interactive charts, this allows users to use the following libraries directly with Bokeh (because they generate matplotlib output):

  • Holoviews
  • Seaborn
  • ggplot
  • Pandas

Bokeh Server

Bokeh Server allows web applications to be developed with interactive visualisations on end-user machines that communicate with a Python-running server to access and manipulate datasets. For examples of these "Bokeh applications" consultĀ

There are no hosted solutions for Bokeh applications, unlike for Shiny apps built using R. For this reason the IDN does not currently support hosting Bokeh applications. If you would like to setup your own Bokeh Server, please consult this documentation.

List of site pages