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 ipympl
See the documentation at: https://matplotlib.org/ipympl/
You can easily try ipympl without installing anything, by simply accessing the example Notebook from Notebook.link or MyBinder:
See the example notebook for more!
conda install -c conda-forge ipymplpip install ipymplIf you want to use ipympl in JupyterLab, we recommend using JupyterLab >= 3.
If you use JupyterLab 2, you still need to install the labextension manually:
conda install -c conda-forge nodejs
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlibIf you are using JupyterLab 1 or 2, 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.
conda install -c conda-forge ipympl==0.5.1
jupyter labextension install @jupyter-widgets/jupyterlab-manager jupyter-matplotlib@0.7.0Versions lookup table:
We recommend using pixi for development as it handles both Python and Node.js dependencies (matplotlib has compiled dependencies).
# Install dependencies and set up environment
pixi install
# Install the Python package in editable mode
pixi run pip install -e .
# Install JavaScript dependencies and build
pixi run jlpm install
pixi run jlpm build
# Set up JupyterLab extension in development mode
pixi run jupyter labextension develop --overwrite .
# Start development workflow (in separate terminals)
pixi run npm run watch # Terminal 1: Auto-rebuild on changes
pixi run jupyter lab # Terminal 2: Run JupyterLabAlternative: Using conda/mamba
mamba env create --file dev-environment.yml
conda activate ipympl-dev
pip install -e .
jlpm install
jlpm build
jupyter labextension develop --overwrite .
# Start development workflow (in separate terminals)
npm run watch # Terminal 1: Auto-rebuild on changes
jupyter lab # Terminal 2: Run JupyterLabTypeScript/JavaScript: After a change, the watch command will automatically rebuild. Wait for the build to finish, then refresh your browser and the changes should take effect.
Python: If you make a change to the Python code, restart the notebook kernel to have it take effect.
If you need to develop for classic Jupyter Notebook (not JupyterLab), also run:
# With pixi:
pixi run jupyter nbextension install --py --symlink --sys-prefix --overwrite ipympl
pixi run jupyter nbextension enable --py --sys-prefix ipympl
# Or with conda/mamba:
jupyter nbextension install --py --symlink --sys-prefix --overwrite ipympl
jupyter nbextension enable --py --sys-prefix ipympl
