nbinteract
nbinteract
is a Python package that creates interactive webpages from Jupyter
notebooks. nbinteract
also has built-in support for interactive plotting.
These interactions are driven by data, not callbacks, allowing authors to focus
on the logic of their programs.
nbinteract
is most useful for:
- Data scientists that want to create simple interactive blog posts without having
to know / work with Javascript.
- Instructors that want to include interactive examples in their textbooks.
- Students that want to publish data analysis that contains interactive demos.
Currently, nbinteract
is in an alpha stage because of its quickly-changing
API.
Examples
Most plotting functions from other libraries (e.g. matplotlib
) take data as
input. nbinteract
's plotting functions take functions as input.
import numpy as np
import nbinteract as nbi
def normal(mean, sd):
'''Returns 1000 points drawn at random fron N(mean, sd)'''
return np.random.normal(mean, sd, 1000)
nbi.hist(normal, mean=(0, 10), sd=(0, 2.0), options=options)
Simulations are easy to create using nbinteract
. In this simulation, we roll
a die and plot the running average of the rolls. We can see that with more
rolls, the average gets closer to the expected value: 3.5.
rolls = np.random.choice([1, 2, 3, 4, 5, 6], size=300)
averages = np.cumsum(rolls) / np.arange(1, 301)
def x_vals(num_rolls):
return range(num_rolls)
def y_vals(xs):
return averages[:len(xs)]
nbi.line(x_vals, y_vals, num_rolls=(1, 300))
Publishing
From a notebook cell:
nbi.publish('SamLau95/nbinteract-image/master', 'homepage.ipynb')
From the command line:
nbinteract SamLau95/nbinteract-image/master homepage.ipynb
For more information on publishing, see the tutorial which has a complete
walkthrough on publishing a notebook to the web.
Installation
Using pip
:
pip install nbinteract
jupyter nbextension enable --py --sys-prefix widgetsnbextension
jupyter nbextension enable --py --sys-prefix bqplot
You may now import the nbinteract
package in Python code and use the
nbinteract
CLI command to convert notebooks to HTML pages.
Tutorial and Documentation
Here's a link to the tutorial and docs for this project.
Developer Install
If you are interested in developing this project locally, run the following:
git clone https://github.com/SamLau95/nbinteract
cd nbinteract
# Installs the nbconvert exporter
pip install -e .
# To export a notebook to interactive HTML format:
jupyter nbconvert --to interact notebooks/Test.ipynb
pip install -U ipywidgets
jupyter nbextension enable --py --sys-prefix widgetsnbextension
brew install yarn
yarn install
# Start notebook and webpack servers
make -j2 serve
Feedback
If you have any questions or comments, send us a message on the
Gitter channel. We appreciate your feedback!
Contributors
nbinteract
is originally developed by Sam Lau and Caleb Siu as part of
a Masters project at UC Berkeley. The code lives under a BSD 3 license and we
welcome contributions and pull requests from the community.