PersIst is a JupyterLab extension to enable persistent interactive visualizations in JupyterLab notebooks.
Project description
Persist
Persistent and Reusable Interactions in Computational Notebooks
This repository contains source code for Persist (PyPi) extension.
Persist is a JupyterLab extension to enable persistent interactive outputs in JupyterLab notebooks. Check out the introductory video below.
https://github.com/visdesignlab/persist/assets/14944083/c6a9347b-7c93-4d0d-9e60-e10707578327
Publication
Persist is developed as part of a publication and is currently under review.
Abstract
Computational notebooks, such as Jupyter, support rich data visualization. However, even when visualizations in notebooks are interactive, they still are a dead end: Interactive data manipulations, such as selections, applying labels, filters, categorizations, or fixes to column or cell values, could be efficiently apply in interactive visual components, but interactive components typically cannot manipulate Python data structures. Furthermore, actions performed in interactive plots are volatile, i.e., they are lost as soon as the cell is re-run, prohibiting reusability and reproducibility. To remedy this, we introduce Persist, a family of techniques to capture and apply interaction provenance to enable persistence of interactions. When interactions manipulate data, we make the transformed data available in dataframes that can be accessed in downstream code cells. We implement our approach as a JupyterLab extension that supports tracking interactions in Vega-Altair plots and in a data table view. Persist can re-execute the interaction provenance when a notebook or a cell is re-executed enabling reproducibility and re-use.
We evaluated Persist in a user study targeting data manipulations with 11 participants skilled in Python and Pandas, comparing it to traditional code-based approaches. Participants were consistently faster with Persist, were able to correctly complete more tasks, and expressed a strong preference for Persist.
Requirements
- JupyterLab >= 4.0.0 or Jupyter Notebook >= 7.0.0
- pandas >= 0.25
- altair >= 5
- ipywidgets
- anywidget
Install
To install the extension, execute:
pip install persist_ext
If the Jupyter server is running, you might have to reload the browser page and restart the kernel.
Uninstall
To remove the extension, execute:
pip uninstall persist_ext
Contributing
Development install
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file persist_ext-1.6.0.tar.gz
.
File metadata
- Download URL: persist_ext-1.6.0.tar.gz
- Upload date:
- Size: 21.8 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.24.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 182b3f30e1ada8bfc5f10f4c40fe9aa259fd2abeca45d3ac04f4e9f9c4188a78 |
|
MD5 | e4dba8e9e5473df0beb088a581e2f3a3 |
|
BLAKE2b-256 | 7984ee3b8d035976643600a3db447b60b7b47a067cb89d4ac3438daa6aac09d6 |
Provenance
File details
Details for the file persist_ext-1.6.0-py3-none-any.whl
.
File metadata
- Download URL: persist_ext-1.6.0-py3-none-any.whl
- Upload date:
- Size: 5.1 MB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: python-httpx/0.24.1
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 9c1bf9d9600508f9959b171566ecbd6e1b79a098247a10d5e0b49305bcdbf6ec |
|
MD5 | 90fdc43792bc071732086b692edff966 |
|
BLAKE2b-256 | 49cd79527065f12f6d3211c65467cc4b7ee7d9c9d695399a4457060ad4edd4b2 |