Compatibility Layers

Bokeh currently utilizes mplexporter to help convert Matplotlib plots into Bokeh plots. MPL plots using features not supported by mplexporter may not render fully. However, there are plans for Matplotlib to adopt a native JSON ingest/export functionality of its own in the future. (MEP 25). This will allow Bokeh and other systems to interact more robustly with matplotlib.

Current MPL compatibility is sufficient to render Seaborn and code. Additionally you can easily render plots generated by pandas as well. You can see examples of Bokeh rendering plots from all of these libraries in the examples/compat directory:


Supporting objects and functions to convert Matplotlib objects into Bokeh.

to_bokeh(fig=None, name=None, server=None, notebook=False, pd_obj=True, xkcd=False)

Uses bokeh to display a Matplotlib Figure.

You can store a bokeh plot in a standalone HTML file, as a document in a Bokeh plot server, or embedded directly into an IPython Notebook output cell.

  • fig (matplotlib.figure.Figure) – The figure to display. If None or not specified, then the current figure will be used.
  • name (str (default=None)) – If this option is provided, then the Bokeh figure will be saved into this HTML file, and then a web browser will used to display it.
  • server (str (default=None)) – Fully specified URL of bokeh plot server. Default bokeh plot server URL is “http://localhost:5006” or simply “deault”
  • notebook (bool (default=False)) – Return an output value from this function which represents an HTML object that the IPython notebook can display. You can also use it with a bokeh plot server just specifying the URL.
  • pd_obj (bool (default=True)) – The implementation asumes you are plotting using the pandas. You have the option to turn it off (False) to plot the datetime xaxis with other non-pandas interfaces.
  • xkcd (bool (default=False)) – If this option is True, then the Bokeh figure will be saved with a xkcd style.