VisDock: A Toolkit for Cross-cutting Interactions in Visualization
Jungu Choi, Yuet Ling Wong, Eli Fisher
University of Maryland, College Park, MD
Deok Gun Park, Niklas Elmqvist
Purdue University, W. Lafayette, IN
Cross-cutting Interactions
- Spatial Selection
- Navigation
- Layer Management
- Annotation
- Others
Interactive Visualizations
What is VisDock?
VisDock is a mix-in JavaScript library
- to import cross-cutting interactions in any SVG-oriented visualizations
- to connect the interactive events to user-defined functions
Design Space
- Any SVG-oriented Visualizations
- Any data-set
- Concreteness
- Direct maniuplation
Take a visualization
Visualization built by Derek Watkins
http://bl.ock.org/dwtkns
Importing VisDock Tools
Visualization built by Derek Watkins
http://bl.ock.org/dwtkns
Importing VisDock Tools
Visualization built by Derek Watkins
http://bl.ock.org/dwtkns
-
Button-based tools
- Selection
- Navigation
- Annotation
-
Query Manager
- Set operations
- Query results
- Miniature View
VisDock Event Handler
Allows the coder to connect the interactions to user-defined functions/events.
Event 1
Event 2
Event 3
Selection
Navigation
Query
Results
VisDock Event Handler
var visdock.eventHandler = {
// Find intersected items given a shape
getHits: function(points, inc) { return []; },
// Mark the selection with a color
setColor: function(items, queryId) {},
// Remove a selection
removeColor: function(queryId) {},
// Modify an existing selection color/opacity
changeColor: function(style, queryId) {},
changeVisibility: function(style, queryId) {},
// Called when Pan/Zoom/Rotate events occur
viewChanged: function(view) {}
}
Minimal Coding Effort
Enhancing interactivity
- Adding interactivity to already interactive visualization
// Updating selection layers
VisDock.updateLayers();
- Supporting dynamically changing visualization
- Animated Transitions
- Semantic Zooming
- Annotated by data-space
// Annotated by dataspace declaration
AnnotatedByData.layerTypes = ['.layers'];
// Updating the annotations
AnnotatedByData.update();
Responsive Javascript
VisDock-enabled
Visualization
Developer
End-User
VisDock Evaluation I
- Informal evaluation study with dozen programmers
Evaluation I Results
- VisDock successfully imported
- VisDock Event Handler partial implementation
VisDock Evaluation II
- 11 paid volunteers to use VisDock-integrated MovieViz visualization.
VisDock Evaluation II
- What is MovieViz?
- Complex visualization with ~ 1000 multi-variate movie and movie-goers' data
Evaluation II Results
- Most participants (9 out of 10) successfully accomplished all objectives.
- All participants queried data using selection tools
- About 6.5 insightful comments per participant
Conclusions & future works
- VisDock's scientific contributions:
- various cross-cutting tools
- minimal coding effort
- user-defined event handler
- More data-driven interactions
- More interactive functions for multiple canvas visualizations.
Revision1
By jungujchoi
Revision1
- 307