ipympl
Matplotlib Jupyter Extension
What it is and what it does
ipympl is a Jupyter extension that brings matplotlib's interactive plotting capabilities into Jupyter notebooks and JupyterLab. It works by registering itself as a matplotlib backend that renders plots as Jupyter interactive widgets instead of static images. When you use the `%matplotlib ipympl` magic command, subsequent matplotlib plots become interactive—you can pan, zoom, and interact with them directly in the notebook.
The package depends on ipython, ipywidgets, matplotlib, numpy, pillow, and traitlets. It's designed for scientific and data analysis workflows where interactive exploration of plots is valuable. The figure canvas is a proper Jupyter widget, meaning it can be positioned within interactive widget layouts alongside other controls, enabling integrated interactive dashboards within notebooks.
Use it for:
- Exploratory data analysis in Jupyter notebooks where interactive pan/zoom of plots improves investigation workflow
- Building interactive dashboards combining matplotlib plots with Jupyter widgets for parameter adjustment
- Scientific research notebooks requiring interactive visualization of computational results
- Educational notebooks where students can interact with plots to understand data relationships
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
ipympl enables interactive matplotlib plots in Jupyter notebooks and JupyterLab by providing a Jupyter widget backend that integrates matplotlib's rendering with the Jupyter interactive widget framework.
Yes. ipympl is actively maintained, has no known vulnerabilities, carries a permissive BSD license, and solves a real problem for Jupyter users who want interactive matplotlib plots. Install friction is low and dependencies are standard. Recommended for any Jupyter-based data analysis or visualization workflow.
Install
ipympl on PyPI
pip
pip install ipympluv
uv add ipymplpoetry
poetry add ipymplInstalling ipympl
Before you install
Low install friction with a pure-Python wheel distribution. The package is actively maintained with a recent commit history and is part of the matplotlib project ecosystem. Runtime dependencies are all standard scientific Python libraries.
License in practice
BSD 3-Clause permissive license allows unrestricted use, modification, and distribution with minimal restrictions, making it suitable for both open-source and commercial projects.
Quickstart
pip install ipympl
# In a Jupyter notebook cell:
%matplotlib ipympl
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [1, 4, 9])
plt.show()
Requires JupyterLab >= 3 for full support; JupyterLab 2 requires manual extension installation. Requires matplotlib >= 3.5.0 for ipympl 0.10.0.
Verify before relying
- Whether the interactive widget canvas can be embedded in custom Jupyter widget layouts as described
- Performance characteristics when rendering large or complex plots in notebook environments
Package facts
| License | Copyright (c) 2016, Matplotlib Contributors All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions… (full text in the JSON record) (permissive) |
| Python support | supports the current Python release (>=3.9) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 6 — ipython, ipywidgets, matplotlib, numpy, pillow, traitlets |
| Maintenance | actively maintained — 205 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 2,245,333/month — #3,191 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: ipympl-0.10.0-py3-none-any.whl
Keywords: graphics, ipython, jupyter, widgets
Tags
More Graphics packages
Pillow adds image processing capabilities to…
permissive · top 100 on PyPI
fonttoolsfonttools manipulates font files in multiple…
permissive · top 1,000 on PyPI
matplotlib-inlineEnables matplotlib figures to display inline…
permissive · top 1,000 on PyPI
pymupdfPyMuPDF extracts, renders, converts, and…
agpl · top 1,000 on PyPI
pypdfium2pypdfium2 is a Python binding to PDFium that…
permissive · top 1,000 on PyPI
altairAltair is a declarative Python library for…
permissive · top 1,000 on PyPI
ipylabipylab lets you control JupyterLab's interface…
permissive · top 15,000 on PyPI
ipytreeipytree provides a tree-structure widget for…
permissive · top 15,000 on PyPI
jupyter_bokehRenders Bokeh visualizations directly within…
permissive · top 15,000 on PyPI
pythreejsPythreejs bridges Python and Three.js to render…
permissive · top 15,000 on PyPI
jupyterlab-widgetsEnables Jupyter/IPython widgets to render and…
permissive · top 1,000 on PyPI
ipysigmaA Jupyter widget that renders interactive…
permissive · top 15,000 on PyPI
ipyparallelManages clusters of IPython processes for…
permissive · top 15,000 on PyPI
ipyvueProvides a Jupyter widget base for building…
permissive · top 15,000 on PyPI
ipydatawidgetsipydatawidgets provides Jupyter widgets for…
permissive · top 15,000 on PyPI