User-Driven Programming Support for Rapid Visualization Authoring in D3

Visualization templates have emerged as an effective approach to simplifying visualization programming for complex libraries like D3. However, these templates are often treated as rigid artifacts that respond poorly to changes made outside of the template's established parameters, limiting user creativity. Addressing this challenge requires a more dynamic approach, where tools can respond gracefully to users' edits when they modify templates in unexpected ways. In this paper, we leverage the structural similarities revealed by templates to design resilient support features for programming D3 visualizations: recommendations to suggest complementary interactions for a users' D3 program; and code augmentation to implement recommended interactions with a single click, even when users deviate from pre-defined templates. We demonstrate the utility of these features in Mirny, an interactive development environment for D3. In a user study with 20 D3 users, we find that these automated features enable participants to program interactive visualizations with significantly less time and effort. We also characterize key modification strategies used by participants to customize D3 templates. Informed by our findings and participants' feedback, we discuss key implications on the use of templates for visualization programming.
View on arXiv