Leveraging the Jupyter interactive widgets framework, ipympl
enables the interactive features of matplotlib in the Jupyter notebook and in JupyterLab.
Besides, the figure canvas
element is a proper Jupyter interactive widget which can be positioned in interactive widget layouts.
To enable the ipympl
backend, simply use the matplotlib
Jupyter
magic:
%matplotlib widget
conda install -c conda-forge ipympl
pip install ipympl
In order to install the JupyterLab extension jupyter-matplotlib
, you will first need to install nodejs
, you can install it with conda
doing
conda install -c conda-forge nodejs
Starting from ipympl 0.5.6
, you do not need to manually install the JupyterLab extension, but you still need to install the JupyterLab widget manager:
jupyter labextension install @jupyter-widgets/jupyterlab-manager
# If you already installed the @jupyter-widgets/jupyterlab-manager extension, you will still need to rebuild JupyterLab after you installed ipympl
jupyter lab build
You will need to install the right jupyter-matplotlib
version, according to the ipympl
and jupyterlab
versions you installed.
For example, if you installed ipympl 0.5.1
, you need to install jupyter-matplotlib 0.7.0
, and this version is only compatible with JupyterLab 1
.
const install -c conda-forge ipympl==0.5.1
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib@0.7.0
Versions lookup table:
ipympl |
jupyter-matplotlib |
JupyterLab version |
---|---|---|
0.5.6 | 0.7.2 | 1 or 2 |
... | ... | ... |
0.5.3 | 0.7.2 | 1 or 2 |
0.5.2 | 0.7.1 | 1 |
0.5.1 | 0.7.0 | 1 |
0.5.0 | 0.6.0 | 1 |
0.4.0 | 0.5.0 | 1 |
0.3.3 | 0.4.2 | 1 |
0.3.2 | 0.4.1 | 1 |
0.3.1 | 0.4.0 | 0 or 1 |
git clone https://github.com/matplotlib/ipympl.git
cd ipympl
pip install -e .
# If using classic Jupyter Notebook
jupyter nbextension install --py --symlink --sys-prefix ipympl
jupyter nbextension enable --py --sys-prefix ipympl
# If using JupyterLab
jupyter labextension install @jupyter-widgets/jupyterlab-manager --no-build
jupyter labextension link ./js
cd js && npm run watch
# Launch jupyterlab as `jupyter lab --watch` in another terminal