prefuse: a toolkit for interactive information visualization
Jeffrey Heer
Group for User Interface Research
Computer Science Division
University of California, Berkeley
Berkeley, CA 94720-1776, USA
jheer@cs.berkeley.edu
Stuart K. Card
User Interface Research Group
Palo Alto Research Center
3333 Coyote Hill Road
Palo Alto, CA 94301, USA
card@parc.com
James A. Landay
DUB Group
Computer Science & Engineering
University of Washington
Seattle, WA 98195-2350, USA
landay@cs.washington.edu
ABSTRACT
Conventional software toolkits for building graphical user
interfaces are typically not well-suited for the demands of
information visualization, in which thousands of interactive
objects may be visible at any time and data items may
regularly come in and out of existence. In this paper we
present a set of higher-level abstractions for authoring
scalable, highly-interactive visualizations of large data sets.
These abstractions are realized in
prefuse, an extensible
user interface toolkit for visualizing both structured and
unstructured data. The toolkit supports node-link diagrams,
containment diagrams, and visualizations of unstructured
(edge-free) data such as scatter plots and timelines.
prefuse
applies scalable abstractions for mapping abstract data into
visual forms and manipulating visual data in aggregate,
supporting design in a modular and principled fashion. To
evaluate the architecture, we built a series of applications
demonstrating the toolkit’s power and flexibility. We also
conducted a qualitative user study with eight programmers
and found that, with the toolkit, non-experts could quickly
build useful interactive visualizations.
Keywords
Information visualization, user interfaces, toolkits, graphs,
trees, interaction techniques, navigation, 2D graphics, Java
ACM Classification Keywords
D.2.2 [Software Engineering]: Design Tools and Techniques.
H.5.2. [Information Interfaces]: User Interfaces. I.3.6
[Methodology and Techniques]: Interaction Techniques.
INTRODUCTION
Information visualization seeks to augment human cognition
by leveraging human visual capabilities to make sense of
large collections of abstract information [10]. Since the
introduction of data graphics in the late 1700’s [45], visual
representations of abstract information have been used to
demystify data and reveal otherwise hidden patterns. The
advent of graphical interfaces has further enabled direct
interaction with visualized information, giving rise to over a
decade of information visualization research and providing
means by which humans with constant perceptual abilities
can grapple with increasing hordes of data.
Still, as inexpensive processing and graphics capabilities
continue to improve, there remains a dearth of information
visualization applications on current systems. While some of
the reasons are economic [18], there are technical roadblocks
as well. One is that information visualization applications are
difficult to build, requiring both mathematical and
programming skills to implement complex layout algorithms
and dynamic graphics, resulting in applications of increased
complexity with more stringent performance demands.
Another reason is that infovis applications do not lend
themselves to “one size fits all” solutions. While successful
visualizations often reuse established techniques, many do so
in a way uniquely tailored to the semantics of the application
domain (e.g., [29]), requiring additional programming.
Finally, while many visualization and interaction techniques
have been developed, we lack a unified software framework
for applying them in novel ways. This suggests the need for a
toolkit approach, supporting a diversity of customized
applications by providing high-level support for common
visualization solutions in a reusable fashion.
While available GUI toolkits have significantly accelerated
the development of user interfaces [35], infovis brings two
unique scalability requirements for which current UI toolkits
are not well-suited. The first is in terms of performance.
Handling thousands of dynamic data items while maintaining
real-time animated interaction is a technical challenge not
well addressed by standard toolkits in which individual
widgets incur a high overhead. Simply waiting for faster
processors is not sufficient, as increases in computing power
and networking have brought similar increases in the size of
relevant data sets. Furthermore, dealing with thousands of
on-screen data elements and perhaps millions of off-screen
elements raises issues of programming scalability, affecting
the program complexity and time costs programmers of such
applications must endure. Suitable abstractions are needed
for presenting and manipulating large collections of
visualized data.