January 7, 2020

376 words 2 mins read

nbinteract: Shareable interactive web pages from notebooks

nbinteract: Shareable interactive web pages from notebooks

The nbinteract package converts Jupyter notebooks with widgets into interactive, standalone HTML pages. Its built-in support for function-driven plotting makes authoring interactive pages simpler by allowing users to focus on data, not callbacks. Sam Lau and Caleb Siu offer an overview of nbinteract and walk you through the steps to publish an interactive web page from a Jupyter notebook.

Talk Title nbinteract: Shareable interactive web pages from notebooks
Speakers Sam Lau (UC Berkeley), Caleb Siu (UC Berkeley)
Conference JupyterCon in New York 2018
Conf Tag The Official Jupyter Conference
Location New York, New York
Date August 22-24, 2018
URL Talk Page
Slides Talk Slides
Video

Jupyter widgets provide simple ways to add interactivity into notebooks. However, sharing these interactive notebooks is challenging since potential viewers need to open the notebook and run cells in order to interact with widgets. Although nbconvert can convert notebooks with widgets into HTML files, the widgets in the HTML files lose functionality because browsers typically don’t natively run Python. The nbinteract Python package converts a notebook with widgets into a standalone HTML page that keeps widget functionality, enabling authors to create interactive web pages using Jupyter notebooks. These web pages can either display the original Python code or hide it to only present interactive elements. When a viewer interacts with a widget, a Binder kernel runs Python code behind the scenes to display the result. Combining widgets with plotting gives authors a function-driven, flexible way to create interactions on the plot’s data. Although matplotlib-based plotting is possible, interactions are laggy because images are too large to send over the network in real time. Nbinteract addresses this issue by supporting a set of plotting functions that generate Javascript-based plots. The reduced data sent through the network enables smooth, real-time interactions. Sam Lau and Caleb Siu offer an overview of nbinteract and walk you through the steps to publish an interactive web page from a Jupyter notebook. To demonstrate how nbinteract’s set of functionality is particularly useful for creating materials to teach data science, Sam and Caleb share how they have used nbinteract for the online textbook of a popular UC Berkeley data science course. They conclude by opening up the floor to discuss other possible applications and use cases for the library.

comments powered by Disqus