How to use widgets in jupyter notebooks

Description of this Notebook
Author
Published

August 18, 2023

Code

How to use widgets in jupyter notebooks

Description of this Notebook
Author
Published

August 18, 2023

Using Widgets in Jupyter Notebooks

Widgets in Jupyter Notebooks allow you to add interactive controls like sliders, buttons, and dropdowns to your notebooks. They can make your data exploration more dynamic and intuitive. This guide will show you how to get started with widgets using the ipywidgets library.

Installation

First, you’ll need to install the ipywidgets library. You can install it using pip or conda.

pip install ipywidgets

Or, if you’re using conda:

conda install -c conda-forge ipywidgets

Basic Usage

Importing the Library

To start using widgets, you need to import the ipywidgets library.

import ipywidgets as widgets
from IPython.display import display

Creating and Displaying Widgets

Here are some basic widgets and how to display them:

Slider

slider = widgets.IntSlider(value=5, min=0, max=10, step=1, description='Slider:')
display(slider)

Text Box

text = widgets.Text(value='Hello, World!', description='Text:')
display(text)

Linking Widgets to Functions

You can link widgets to functions to make them interactive. Here’s an example using a slider and a text box.

def on_value_change(change):
    text.value = f'Slider value: {change["new"]}'

slider.observe(on_value_change, names='value')
display(slider, text)

Using interact for Simplified Interaction

The interact function provides a quick way to create interactive widgets.

from ipywidgets import interact

def greet(name):
    return f'Hello, {name}!'

interact(greet, name='World')

More Complex Widgets

You can also create more complex widgets like interactive plots using libraries like matplotlib.

import matplotlib.pyplot as plt
import numpy as np

def plot_function(a, b):
    x = np.linspace(-10, 10, 100)
    y = a * x + b
    plt.plot(x, y)
    plt.ylim(-100, 100)
    plt.show()

interact(plot_function, a=(-10, 10), b=(-10, 10))

Combining Widgets

You can combine multiple widgets into a single display using VBox, HBox, and other layout widgets.

container = widgets.VBox([slider, text, dropdown])
display(container)

Custom Styling

You can also customize the appearance of widgets.

slider.style.handle_color = 'lightblue'
text.style.description_width = 'initial'