The Jupyter interactive widget ecosystem
Bring interactivity to your Jupyter notebooks using only Python
Start By
4 h
Estimated Time
Jupyter widgets are powerful tools for building user interfaces with graphical controls such as sliders and text boxes inside a Jupyter notebook.
Show all

Jupyter widgets are more than a collection of controls; they also are a framework that makes it easy to build custom GUI controls using only Python. Widgets can be connected to each other, can update plots or other widgets, and perform complex calculations in response to user changes in the interface elements. They enable users to explore their data in a more intuitive and immediate way. Interactive widgets can also be rendered in Sphinx documentation, nbviewer, and static web pages. Example custom widgets include ipysheet for editing tabular data, bqplot for plotting and pythreejs for displaying and manipulating 3D objects. New custom widgets can be written either in Python or a combination of Python and JavaScript.

connect widgets to each other either by linking values or by using observe
lay out multiple widgets in a container
build basic widget applications
construct your own widgets in Python
Presented by
Matt Craig is a Professor of Physics and Astronomy at Minnesota State University Moorhead, in western Minnesota. He started using Python about seven years ago to do data analysis on data from a small telescope owned by the university. Jupyter notebooks seemed like a natural fit for new users; widgets make it even easier for them to get started. Since learning about widgets a few years ago he has used them to connect programming novices with high-quality scientific packages. He has taught a Computational Physics course that has evolved into a scientific Python course, with roughly equal emphasis on pythonic programming, computational methods, and a survey of existing packages. In addition, he leads a group of 5-10 undergraduates in doing astronomical research and coding in python.
Professor of Physics & Astronomy
Minnesota State University Moorhead
Martin Renou is a Scientific Software Engineer at QuantStack. Previously, he studied at the aerospace engineering school SUPAERO in Toulouse, France. He also worked at Logilab in Paris, France and Enthought in Cambridge, UK. As an open-source developer at QuantStack, he works on a variety of projects, from xtensor and xeus-python in C++ to ipyleaflet and bqplot in Python and Javascript/TypeScript.
Scientific Software Engineer
Itay Dafna is a Software Engineer in Bloomberg’s San Francisco Engineering office. He is developing open source and proprietary data visualization libraries and tooling to help users explore, understand, and communicate complex relationships within their data. Itay joined Bloomberg in 2013, where he has previously held the roles of Quantitative Analytics Team Leader and Financial Engineer. Itay earned his MSc in Management from the London School of Economics, and has been awarded the Certificate in Quantitative Finance from the CQF Institute.
Software Engineer
Bloomberg LP
Mehmet Bektas is a Senior Software Engineer in Bloomberg’s San Francisco Engineering office. He develops data science software tools for Bloomberg's quant platform that is based on Project Jupyter and integrated with the Bloomberg Terminal and the company’s market data. He is also a Jupyter Core Developer and contributes to several open source projects in the Jupyter ecosystem, including JupyterLab, Lumino, and ipywidgets. He has extensive experience developing user interfaces and data visualization software for various platforms. He holds an undergraduate degree from the Middle East Technical University (METU) in Turkey, and an MSc in Civil Engineering from the Georgia Institute of Technology (Georgia Tech).
Senior Software Engineer
Bloomberg LP
Get started
Overview and launch Binder
Interactive Jupyter widgets
More about interact
Interactive plots
OPTIONAL: More about interact
Complete ipywidgets widget list
Widgets Events
Layout and styling
Widget layout and styling
OPTIONAL: Widget label styling
OPTIONAL: Widget specific styling
OPTIONAL: Container exercises
Widget libraries
Widget libraries
Table of widget keys and style keys
Office Hours
Office Hours Meeting
Frequently Asked Questions
Do I need to install any software to work through this tutorial?
You can launch an interactive session on our JupyterHub from inside the course and work fully in the cloud, without installing anything.