Visualization Design Patterns: Difference between revisions
FaithCameron (talk | contribs) No edit summary |
Paulparsons (talk | contribs) m added link to pdf |
||
(86 intermediate revisions by 54 users not shown) | |||
Line 1: | Line 1: | ||
{| align="right" | __TOC__ |} | {| align="right" | __TOC__ |} | ||
== Overview == | == Overview == | ||
For any design discipline, including Information and Scientific Visualization, | For any design discipline, including Information and Scientific Visualization, there are design problems within the domain that tend to arise time and again. Although effective solutions may be known, they are not helpful unless that knowledge is coherently structured and communicated to colleagues. Without good structure, design knowledge may be disparate and disjointed, and relationships among solutions may not be apparent. Without good communication, designers who are unaware of solutions may be forced to ‘reinvent the wheel’, wasting unnecessary effort on a problem that has already been solved by others. Some means of capturing and codifying solutions to Information Visualisation design problems would be useful for those engaged in practice. The Visualization Design Patterns described here have been proposed for this purpose. | ||
== Foundational Patterns == | |||
These patterns are the building blocks of Visualizations. They are more "reference patterns" than true "design patterns". Visualization designers will assume they are a given component of visualization design. The patterns are included to provide a common technical lexicon, to build a ''lingua franca'' used throughout the language, to encourage communications between novices and experts, and to facilitate a discussion of pros and cons. | |||
=== '''Visualization Architecture''' === | === '''Visualization Architecture''' === | ||
* [[Patterns:Visualization|Visualization]] | * [[Patterns:Visualization|Visualization]] | ||
=== '''Interaction Patterns''' === | === '''Interaction Patterns''' === | ||
User intent-based categories of interaction techniques <ref>Yi, J. S., Kang, Y. A., Stasko, J., & Jacko, J. A. (2007). [ | User intent-based categories of interaction techniques <ref>Yi, J. S., Kang, Y. A., Stasko, J., & Jacko, J. A. (2007). [ Toward a Deeper Understanding of the Role of Interaction in Information Visualization.] IEEE Transactions on Visualization and Computer Graphics (TVCG), 13(6). Presented in InfoVis 2007, Sacramento, California, October 28 - November 1, 1224-1231. (see also [ Toward a Deeper Understanding of the Role of Interaction in Information Visualization (presentation)])</ref> | ||
* Reconfigure: show me a different arrangement | * Reconfigure: show me a different arrangement | ||
* Encode: show me a different representation | * Encode: show me a different representation | ||
Line 24: | Line 24: | ||
* Abstract/Elaborate: show me more or less detail | * Abstract/Elaborate: show me more or less detail | ||
** [[Patterns:Overview|Overview]] | ** [[Patterns:Overview|Overview]] | ||
** [[Patterns:Details-on-demand|Details-on-demand]] | ** [[Patterns:Details-on-demand| Details-on-demand]] | ||
* Connect: show me related items | * Connect: show me related items | ||
** [[Patterns:Brushing|Brushing]] | ** [[Patterns:Brushing|Brushing]] | ||
Line 45: | Line 45: | ||
** [[Patterns:3D Navigational Model|3D Navigational Model]] | ** [[Patterns:3D Navigational Model|3D Navigational Model]] | ||
** [[Patterns:NAFS Model|NAFS Model]] | ** [[Patterns:NAFS Model|NAFS Model]] | ||
General interaction patterns, characterized according to actions that users perform on visual representations (VRs), and the utility of action-reaction pairs (i.e., interactions) in carrying out tasks and activities. These are conceptual, pattern-based characterizations of user-initiated interactions with visual representations at the interface, and are not directly concerned with implementation details, techniques, and underlying data/information. Included with each pattern is a list of some common variations, techniques with which the pattern has been instantiated, the cognitive utility of the interaction in the context of performing complex tasks and activities, and some examples and lists of existing tools in which the pattern is instantiated. <ref>Sedig, K. & Parsons, P. (2013). Interaction Design for Complex Cognitive Activities with Visual Representations: A Pattern-Based Approach. AIS Transactions on Human-Computer Interaction, 5(2), pp. 84-133.[http://aisel.aisnet.org/cgi/viewcontent.cgi?article=1057&context=thci]</ref> | |||
Unipolar Patterns: | |||
* Annotating: augment VRs with additional visual marks and coding schemes, as personal meta-information | |||
* Arranging: change the ordering of VRs, either spatially or temporally | |||
* Assigning: bind a feature or value to VRs (e.g., meaning, function, or behavior) | |||
* Blending: fuse VRs together such that they become one indivisible, single, new VR | |||
* Cloning: create multiple identical copies of VRs | |||
* Comparing: determine degree of similarity or difference between VRs | |||
* Drilling: bring out, make available, and display in VRs interior, deep information from the underlying information space | |||
* Filtering: display a subset of the elements of VRs according to certain criteria | |||
* Measuring: quantify some items within VRs (e.g., area, length, mass, temperature, and speed) | |||
* Navigating: move on, through, and/or around VRs | |||
* Scoping: dynamically work forwards and backwards to view compositional development and growth of VRs | |||
* Searching: seek out the existence of or locate the position of specific items, relationships, or structures within VRs | |||
* Selecting: focus on or choose VRs, either as an individual or as a group | |||
* Sharing: make VRs accessible to other people | |||
* Transforming: change the geometric form of VRs | |||
* Translating: convert VRs into informationally or conceptually equivalent forms | |||
Bipolar Patterns: | |||
* Accelerating/Decelerating: increase or decrease speed of movement of the constituent components of VRs | |||
* Animating/Freezing: generate or stop motion in the constituent components of VRs | |||
* Collapsing/Expanding: fold in or compact VRs, or oppositely, fold them out or make them diffuse | |||
* Composing/Decomposing: assemble VRs and join them together to create a new, whole VR, or oppositely, break whole entities up into separate, constituent components | |||
* Gathering/Discarding: gather VRs into a collection, or oppositely, throw them away completely | |||
* Inserting/Removing: interject new VRs into them, or oppositely, get rid of their unwanted or unnecessary portions | |||
* Linking/Unlinking: establish a relationship or association between VRs, or oppositely, dissociate them and disconnect their relationships | |||
* Storing/Retrieving: put VRs aside for later use, or oppositely, bring stored VRs back into usage | |||
See also: [http://en.wikipedia.org/wiki/Interaction_design_pattern Interaction Design Patterns (wikipedia article)] | See also: [http://en.wikipedia.org/wiki/Interaction_design_pattern Interaction Design Patterns (wikipedia article)] | ||
Line 53: | Line 86: | ||
* [[Patterns:Level of Detail|Level of Detail]] | * [[Patterns:Level of Detail|Level of Detail]] | ||
* [[Patterns:2d Representation|2d Representation]] | * [[Patterns:2d Representation|2d Representation]] | ||
* [[Patterns:3d Representation|3d Representation]] | * [[Patterns:3d Representation|3d Representation]] | ||
* [[Patterns:Reference Context|Reference Context]] | * [[Patterns:Reference Context|Reference Context]] | ||
Line 66: | Line 100: | ||
These are patterns related to the backend programming of visualization systems. They are organised according to the Model-View-Controller approach, though other organizational systems may also be appropriate. | These are patterns related to the backend programming of visualization systems. They are organised according to the Model-View-Controller approach, though other organizational systems may also be appropriate. | ||
Heer and Agrawala's paper ''Software Design Patterns for Information Visualization''<ref | Heer and Agrawala's paper ''Software Design Patterns for Information Visualization''<ref>see Heer, J. & Agrawala, M., 2006. [Software Design Patterns for Information Visualization]. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 12(5), p.853.</ref> provides a useful overview of software design patterns specific to infovis tasks. | ||
=== Data Modelling and Management === | === Data Modelling and Management === | ||
* [[Patterns:Reference Model|Reference Model]] | * [[Patterns:Reference Model|Reference Model]] | ||
* [[Patterns:Data Column|Data Column]] | * [[Patterns:Data Column|Data Column]] | ||
* [[Patterns:Cascaded Table|Cascaded Table]] | * [[Patterns:Cascaded Table|Cascaded Table]] | ||
* [[Patterns:Relational Graph|Relational Graph]] | * [[Patterns:Relational Graph|Relational Graph]] | ||
* [[Patterns:Proxy Tuple|Proxy Tuple]] | * [[Patterns:Proxy Tuple|Proxy Tuple]] | ||
Line 78: | Line 114: | ||
* [[Patterns:Camera|Camera]] | * [[Patterns:Camera|Camera]] | ||
* [[Patterns:Dynamic Query Binding|Dynamic Query Binding]] | * [[Patterns:Dynamic Query Binding|Dynamic Query Binding]] | ||
=== Controller === | === Controller === | ||
* [[Patterns:Scheduler|Scheduler]] | * [[Patterns:Scheduler|Scheduler]] | ||
Line 85: | Line 122: | ||
== Development Patterns == | == Development Patterns == | ||
These patterns relate to the systems development lifecycle and to the activities involved in implementing and testing software. | These patterns relate to the systems development lifecycle and to the activities involved in implementing and testing software. | ||
=== Diagnosis === | === Diagnosis === | ||
For techniques used during the design process to evaluate coding and design-time decisions. | For techniques used during the design process to evaluate coding and design-time decisions. |
Latest revision as of 17:59, 22 March 2014
Overview
For any design discipline, including Information and Scientific Visualization, there are design problems within the domain that tend to arise time and again. Although effective solutions may be known, they are not helpful unless that knowledge is coherently structured and communicated to colleagues. Without good structure, design knowledge may be disparate and disjointed, and relationships among solutions may not be apparent. Without good communication, designers who are unaware of solutions may be forced to ‘reinvent the wheel’, wasting unnecessary effort on a problem that has already been solved by others. Some means of capturing and codifying solutions to Information Visualisation design problems would be useful for those engaged in practice. The Visualization Design Patterns described here have been proposed for this purpose.
Foundational Patterns
These patterns are the building blocks of Visualizations. They are more "reference patterns" than true "design patterns". Visualization designers will assume they are a given component of visualization design. The patterns are included to provide a common technical lexicon, to build a lingua franca used throughout the language, to encourage communications between novices and experts, and to facilitate a discussion of pros and cons.
Visualization Architecture
Interaction Patterns
User intent-based categories of interaction techniques [1]
- Reconfigure: show me a different arrangement
- Encode: show me a different representation
- Filter: show me something conditionally
- Abstract/Elaborate: show me more or less detail
- Connect: show me related items
- Explore: show me something else
- Select: mark something as interesting
- Other
General interaction patterns, characterized according to actions that users perform on visual representations (VRs), and the utility of action-reaction pairs (i.e., interactions) in carrying out tasks and activities. These are conceptual, pattern-based characterizations of user-initiated interactions with visual representations at the interface, and are not directly concerned with implementation details, techniques, and underlying data/information. Included with each pattern is a list of some common variations, techniques with which the pattern has been instantiated, the cognitive utility of the interaction in the context of performing complex tasks and activities, and some examples and lists of existing tools in which the pattern is instantiated. [2]
Unipolar Patterns:
- Annotating: augment VRs with additional visual marks and coding schemes, as personal meta-information
- Arranging: change the ordering of VRs, either spatially or temporally
- Assigning: bind a feature or value to VRs (e.g., meaning, function, or behavior)
- Blending: fuse VRs together such that they become one indivisible, single, new VR
- Cloning: create multiple identical copies of VRs
- Comparing: determine degree of similarity or difference between VRs
- Drilling: bring out, make available, and display in VRs interior, deep information from the underlying information space
- Filtering: display a subset of the elements of VRs according to certain criteria
- Measuring: quantify some items within VRs (e.g., area, length, mass, temperature, and speed)
- Navigating: move on, through, and/or around VRs
- Scoping: dynamically work forwards and backwards to view compositional development and growth of VRs
- Searching: seek out the existence of or locate the position of specific items, relationships, or structures within VRs
- Selecting: focus on or choose VRs, either as an individual or as a group
- Sharing: make VRs accessible to other people
- Transforming: change the geometric form of VRs
- Translating: convert VRs into informationally or conceptually equivalent forms
Bipolar Patterns:
- Accelerating/Decelerating: increase or decrease speed of movement of the constituent components of VRs
- Animating/Freezing: generate or stop motion in the constituent components of VRs
- Collapsing/Expanding: fold in or compact VRs, or oppositely, fold them out or make them diffuse
- Composing/Decomposing: assemble VRs and join them together to create a new, whole VR, or oppositely, break whole entities up into separate, constituent components
- Gathering/Discarding: gather VRs into a collection, or oppositely, throw them away completely
- Inserting/Removing: interject new VRs into them, or oppositely, get rid of their unwanted or unnecessary portions
- Linking/Unlinking: establish a relationship or association between VRs, or oppositely, dissociate them and disconnect their relationships
- Storing/Retrieving: put VRs aside for later use, or oppositely, bring stored VRs back into usage
See also: Interaction Design Patterns (wikipedia article)
Display Rendering Patterns
- 3d Representation
- Reference Context
- Redundant Encoding
- Small Multiples
- Datatips
- Legends
- Visual Separation
- Familiar Organizational Device
- Non-Familiar Organizational Device
Programming Patterns
These are patterns related to the backend programming of visualization systems. They are organised according to the Model-View-Controller approach, though other organizational systems may also be appropriate.
Heer and Agrawala's paper Software Design Patterns for Information Visualization[3] provides a useful overview of software design patterns specific to infovis tasks.
Data Modelling and Management
View
Controller
Development Patterns
These patterns relate to the systems development lifecycle and to the activities involved in implementing and testing software.
Diagnosis
For techniques used during the design process to evaluate coding and design-time decisions.
Evaluation and Testing
Quality Assurance, Evaluation, and Usability testing methods to close the feedback loop during the development lifecycle.
References
- ↑ Yi, J. S., Kang, Y. A., Stasko, J., & Jacko, J. A. (2007). [ Toward a Deeper Understanding of the Role of Interaction in Information Visualization.] IEEE Transactions on Visualization and Computer Graphics (TVCG), 13(6). Presented in InfoVis 2007, Sacramento, California, October 28 - November 1, 1224-1231. (see also [ Toward a Deeper Understanding of the Role of Interaction in Information Visualization (presentation)])
- ↑ Sedig, K. & Parsons, P. (2013). Interaction Design for Complex Cognitive Activities with Visual Representations: A Pattern-Based Approach. AIS Transactions on Human-Computer Interaction, 5(2), pp. 84-133.[1]
- ↑ see Heer, J. & Agrawala, M., 2006. [Software Design Patterns for Information Visualization]. IEEE TRANSACTIONS ON VISUALIZATION AND COMPUTER GRAPHICS, 12(5), p.853.