[Paper Review] NOVA: A Practical Method for Creating Notebook-Ready Visual Analytics
NOVA is a practical method that enables visualization researchers to convert existing web-based visual analytics (VA) tools into interactive notebook widgets for computational notebooks like Jupyter and Google Colab. By bundling VA tools into single HTML files, creating a Python wrapper API for one-way data communication, and publishing the widget via PyPI, NOVA allows seamless integration into data scientists' workflows, with real-world adoption in tools like GAM Changer for model editing.
How can we develop visual analytics (VA) tools that can be easily adopted? Visualization researchers have developed a large number of web-based VA tools to help data scientists in a wide range of tasks. However, adopting these standalone systems can be challenging, as they require data scientists to create new workflows to streamline the VA processes. Recent surveys suggest computational notebooks have been dominating data scientists' analytical workflows, as these notebooks seamlessly combine text, code, and visualization, allowing users to rapidly iterate code experiments. To help visualization researchers develop VA tools that can be easily integrated into existing data science workflows, we present NOVA, a simple and flexible method to adapt web-based VA systems for notebooks. We provide detailed examples of using this method with diverse web development technologies and different types of computational notebooks. Deployed application examples highlight that NOVA is easy to adopt, and data scientists appreciate in-notebook VA. NOVA is available at https://github.com/poloclub/nova.
Motivation & Objective
- To address the challenge of integrating standalone web-based visual analytics (VA) tools into data scientists’ computational notebook workflows.
- To reduce the barrier for visualization researchers to adapt their VA tools for notebook environments without requiring backend servers.
- To enable end-users to install and use VA tools as lightweight, interactive widgets directly within notebook cells.
- To support diverse web technologies (e.g., Svelte, React, Vanilla JS) and popular notebook environments (Jupyter, Colab, VSCode).
- To demonstrate the method’s practicality through real-world examples and maintain a public registry of NOVA-ported VA tools.
Proposed method
- Step 1: Bundle the VA tool’s frontend assets (HTML, CSS, JS, assets) into a single HTML file using module bundlers like Rollup or Webpack.
- Step 2: Design a Python function API that renders the widget in a notebook cell and sends data/configurations to the widget via standard web events (one-way communication).
- Step 3: Package the widget as a Python library and publish it on the Python Package Index (PyPI) for easy installation via pip.
- The method supports all major web development stacks and works with any notebook environment that supports iframes and JavaScript execution.
- The approach enables simultaneous demonstration of the VA tool in both web app and notebook widget forms using in-browser Python environments.
- The workflow is lightweight and reusable, with a typical publishing step taking under 10 minutes.
Experimental results
Research questions
- RQ1How can existing web-based visual analytics tools be adapted to run as interactive widgets within computational notebooks?
- RQ2What technical workflow enables seamless data injection from notebooks into VA widgets without requiring backend servers?
- RQ3How does notebook integration improve the usability and workflow integration of VA tools compared to standalone web apps?
- RQ4What are the practical challenges and trade-offs in supporting cross-stack compatibility across different web frameworks and notebook environments?
- RQ5How can visualization researchers efficiently adopt and maintain notebook-ready VA tools at scale?
Key findings
- NOVA successfully converts web-based VA tools into notebook widgets using a three-step workflow that is lightweight and reusable across different web technologies.
- The method enables end-users to install and use VA widgets with a single pip install command, integrating them directly into Jupyter, Google Colab, and VSCode notebooks.
- Real-world deployment of GAM Changer as a NOVA widget demonstrates improved user experience, including the ability to launch multiple instances in a single notebook for side-by-side comparison.
- Data scientists reported higher satisfaction with in-notebook VA tools due to streamlined workflows and the ability to combine multiple widgets into dashboards using sticky cells.
- The approach supports one-way communication from notebook to widget, which is secure and compatible with most notebook environments, though two-way communication is not currently supported.
- A public registry of NOVA-ported VA tools is maintained to track adoption trends and provide up-to-date examples for the research community.
Better researchstarts right now
From reading papers to final review, dramatically reduce your research time.
No credit card · Free plan available
This review was created by AI and reviewed by human editors.