Software Design Patterns for Information Visualization

Jeffrey Heer, Maneesh Agrawala


Despite a diversity of software architectures supporting information visualization, it is often difficult to identify, evaluate, and re-apply the design solutions implemented within such frameworks. One popular and effective approach for addressing such difficulties is to capture successful solutions in design patterns, abstract descriptions of interacting software components that can be customized to solve design problems within a particular context. Based upon a review of existing frameworks and our own experiences building visualization software, we present a series of design patterns for the domain of information visualization. We discuss the structure, context of use, and interrelations of patterns spanning data representation, graphics, and interaction. By representing design knowledge in a reusable form, these patterns can be used to facilitate software design, implementation, and evaluation, and improve developer education and communication.

The network depicts interactions between software design patterns, providing a map of how the various design patterns apply or mutually reinforce each other. Patterns with italicized text are taken from Gamma et al's collection of general design patterns; those with a standard typeface are visualization-specific patterns introduced in this paper.

Research Paper

PDF (2.0M)

Software Design Patterns for Information Visualization
IEEE Transactions on Visualization and Computer Graphics (TVCG), 12(5). Sep/Oct 2006.