Examples#

IPython includes an interactive widget architecture that combines Python code running in the kernel and JavaScript/HTML/CSS running in the browser. These widgets allow users to interactively examine their code and data.

Interact function#

ipywidgets.interact automatically creates user interface (UI) controls to interactively explore code and data.

[1]:
from __future__ import print_function

import ipywidgets as widgets

from ipywidgets import fixed, interact, interact_manual, interactive

In the simplest case, interact automatically generates controls for function arguments and then calls the function with those arguments when you interactively edit the controls. The following is a function that returns its only argument x.

[2]:
def f(x):
    return x

Slider#

If you specify a function with an integer keyword argument (x=10), a slider is generated and bound to the function parameter:

[3]:
interact(f, x=10);

Checkbox#

If you specify True or False, interact generates a checkbox:

[4]:
interact(f, x=True);

Text area#

If you pass a string, interact generates a text area:

[5]:
interact(f, x="Hi Pythonistas!");

Decorator#

interact can also be used as a decorator. This way you can define a function and interact with it in a single setting. As the following example shows, interact also works with functions that have multiple arguments:

[6]:
@interact(x=True, y=1.0)
def g(x, y):
    return (x, y)