VizSmith: Automated Visualization Synthesis by Mining Data-Science Notebooks
Authors:
- 1 November 2021
- conference paper
- Published by Institute of Electrical and Electronics Engineers (IEEE)
- p. 129-141
Abstract
Visualizations are widely used to communicate findings and make data-driven decisions. Unfortunately creating bespoke and reproducible visualizations requires the use of procedural tools such as matplotlib. These tools present a steep learning curve as their documentation often lacks sufficient usage examples to help beginners get started or accomplish a specific task. Forums such as StackOverflow have long helped developers search for code online and adapt it for their use. However, developers still have to sift through search results and understand the code before adapting it for their use.We built a tool called VizSmith which enables code reuse for visualizations by mining visualization code from Kaggle notebooks and creating a database of 7176 reusable Python functions. Given a dataset, columns to visualize and a text query from the user, VizSmith searches this database for appropriate functions, runs them and displays the generated visualizations to the user. At the core of VizSmith is a novel metamorphic testing based approach to automatically assess the reusability of functions, which improves end-to-end synthesis performance by 10% and cuts the number of execution failures by 50%.Keywords
Funding Information
- Fujitsu
This publication has 32 references indexed in Scilit:
- DataTone2015
- How developers search for code: a case study2015
- Voyager: Exploratory Analysis via Faceted Browsing of Visualization RecommendationsIEEE Transactions on Visualization and Computer Graphics, 2015
- Active code search2014
- Sourcerer: An infrastructure for large-scale collection and analysis of open-source codeScience of Computer Programming, 2014
- Enterprise Data Analysis and Visualization: An Interview StudyIEEE Transactions on Visualization and Computer Graphics, 2012
- Simplifying and isolating failure-inducing inputIEEE Transactions on Software Engineering, 2002
- Dynamic program slicingACM SIGPLAN Notices, 1990
- Automating the design of graphical presentations of relational informationACM Transactions on Graphics, 1986
- On Testing Non-Testable ProgramsThe Computer Journal, 1982