mpl_interactions: Easy interactive Matplotlib plots

mpl_interactions’ aims to make it as easy as possible to create responsive Matplotlib plots. In particular, you can:

  • Better understand a function’s change with respect to a parameter.

  • Visualize your data interactively.

To achieve this, mpl_interactions provides:

  • A way to control the output of pyplot functions (e.g. plot and hist) with sliders

  • A function to compare horizontal and vertical slices of heatmaps.

  • A function allowing zooming using the scroll wheel.


To install, simply run: pip install mpl_interactions

To also install version of ipympl and ipywidgets that are known to work install the optional jupyter dependencies by running pip install mpl_interactions[jupyter]

Further instructions for installation from JupyterLab can be found on the Installation page.

Basic example

To control a plot with a slider:

# if running this code in a Jupter notbeook or JupyterLab
%matplotlib ipympl
import mpl_interactions.ipyplot as iplt
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, np.pi, 100)
tau = np.linspace(0.5, 10, 100)

def f1(x, tau, beta):
   return np.sin(x * tau) * x * beta
def f2(x, tau, beta):
   return np.sin(x * beta) * x * tau

fig, ax = plt.subplots()
controls = iplt.plot(x, f1, tau=tau, beta=(1, 10, 100), label="f1")
iplt.plot(x, f2, controls=controls, label="f2")
_ = plt.legend()

If you are in a Jupyter Notebook the output will look like this:


and from a script or ipython the output will use Matplotlib sliders:


For other functionality and more detailed examples, visit the Examples page.