You are previewing Data Visualization, 2nd Edition.
O'Reilly logo
Data Visualization, 2nd Edition

Book Description

Designing a complete visualization system involves many subtle decisions. When designing a complex, real-world visualization system, such decisions involve many types of constraints, such as performance, platform (in)dependence, available programming languages and styles, user-interface toolkits, input/output data format constraints, integration with third-party code, and more.

Focusing on those techniques and methods with the broadest applicability across fields, the second edition of Data Visualization: Principles and Practice provides a streamlined introduction to various visualization techniques. The book illustrates a wide variety of applications of data visualizations, illustrating the range of problems that can be tackled by such methods, and emphasizes the strong connections between visualization and related disciplines such as imaging and computer graphics. It covers a wide range of sub-topics in data visualization: data representation; visualization of scalar, vector, tensor, and volumetric data; image processing and domain modeling techniques; and information visualization.

See What’s New in the Second Edition:

  • Additional visualization algorithms and techniques
  • New examples of combined techniques for diffusion tensor imaging (DTI) visualization, illustrative fiber track rendering, and fiber bundling techniques
  • Additional techniques for point-cloud reconstruction
  • Additional advanced image segmentation algorithms
  • Several important software systems and libraries

Algorithmic and software design issues are illustrated throughout by (pseudo)code fragments written in the C++ programming language. Exercises covering the topics discussed in the book, as well as datasets and source code, are also provided as additional online resources.

Table of Contents

  1. Preliminaries
  2. Dedication
  3. Preface to Second Edition
  4. Chapter 1 Introduction
    1. 1.1 How Visualization Works
      1. Visualization and insight
        1. Concrete questions
      2. Quantitative vs. qualitative questions
      3. Exact vs. fuzzy questions
        1. Discover the unknown
      4. Examples.
      5. Subfields of data visualization
        1. Scientific visualization
        2. Information visualization
        3. Visual anaytics
      6. Interactive exploration
    2. 1.2 Positioning in the Field
      1. Interactive Data Visualization: Foundations, Techniques, and Applications
      2. The Visualization Toolkit
      3. The Visualization Handbook
      4. Information Visualization Literature
    3. 1.3 Book Structure
      1. Chapter 2.
      2. Chapter 3.
      3. Chapter 4.
      4. Chapter 5-7.
      5. Chapter 8.
      6. Chapter 9.
      7. Chapter 10.
      8. Chapter 11.
      9. Chapter 12.
      10. Appendix
    4. 1.4 Notation
    5. 1.5 Online Material
    6. Acknowledgments
      1. Figure 1.1
      2. Figure 1.2
      3. Figure 1.3
  5. Chapter 2 From Graphics to Visualization
    1. 2.1 A Simple Example
    2. 2.2 Graphics-Rendering Basics
      1. Rendering equation
    3. 2.3 Rendering the Height Plot
      1. Flat shading
      2. Smooth shading
      3. Computing vertex normals
    4. 2.4 Texture Mapping
    5. 2.5 Transparency and Blending
    6. 2.6 Viewing
      1. Virtual camera
      2. Projection
      3. Viewport
    7. 2.7 Putting It All Together
      1. Initialization
      2. Viewing
      3. Drawing
      4. Improvements
    8. 2.8 Conclusion
      1. Figure 2.1
      2. Figure 2.2
      3. Figure 2.3
      4. Figure 2.4
      5. Figure 2.5
      6. Figure 2.6
      7. Figure 2.7
      8. Figure 2.8
      9. Figure 2.9
      10. Figure 2.10
      11. Figure 2.11
      12. Figure 2.12
      1. Listings 2.1
      2. Listings 2.2
      3. Listings 2.3
      4. Listings 2.4
      5. Listings 2.5
      6. Listings 2.6
      7. Listings 2.7
  6. Chapter 3 Data Representation
    1. 3.1 Continuous Data
      1. 3.1.1 What Is Continuous Data?
      2. 3.1.2 Mathematical Continuity
      3. 3.1.3 Dimensions: Geometry, Topology, and Attributes
    2. 3.2 Sampled Data
      1. Interpolation
      2. Grids and cells
      3. Putting it all together
    3. 3.3 Discrete Datasets
    4. 3.4 Cell Types
      1. 3.4.1 Vertex
      2. 3.4.2 Line
      3. 3.4.3 Triangle
      4. 3.4.4 Quad
      5. 3.4.5 Tetrahedron
      6. 3.4.6 Hexahedron
      7. 3.4.7 Other Cell Types
    5. 3.5 Grid Types
      1. 3.5.1 Uniform Grids
      2. 3.5.2 Rectilinear Grids
      3. 3.5.3 Structured Grids
      4. 3.5.4 Unstructured Grids
    6. 3.6 Attributes
      1. 3.6.1 Scalar Attributes
      2. 3.6.2 Vector Attributes
      3. 3.6.3 Color Attributes
        1. RGB space
        2. HSV space
        3. Converting between RGB and HSV
        4. Color perception
      4. 3.6.4 Tensor Attributes
        1. Curvature as a tensor
        2. Tensors, vectors, and scalars
      5. 3.6.5 Non-Numerical Attributes
      6. 3.6.6 Properties of Attribute Data
        1. Completeness
        2. Multivariate data
        3. Node vs. cell attributes
        4. High-variate interpolation
          1. Normals
          2. Vectors
          3. Colors
          4. Tensors
    7. 3.7 Computing Derivatives of Sampled Data
    8. 3.8 Implementation
      1. 3.8.1 Grid Implementation
        1. Uniform grids
        2. Rectilinear grids
        3. Structured grids
        4. Unstructured grids
      2. 3.8.2 Attribute Data Implementation
        1. Scalar attributes
        2. Vector attributes
        3. Storing several attribute instances
    9. 3.9 Advanced Data Representation
      1. 3.9.1 Data Resampling
        1. Cell to vertex resampling
        2. Vertex to cell resampling
        3. Subsampling and supersampling
      2. 3.9.2 Scattered Point Interpolation
        1. Constructing a grid from scattered points
        2. Gridless interpolation
        3. Performance issues
        4. Shepard interpolation
    10. 3.10 Conclusion
      1. Figure 3.1
      2. Figure 3.2
      3. Figure 3.3
      4. Figure 3.4
      5. Figure 3.5
      6. Figure 3.6
      7. Figure 3.7
      8. Figure 3.8
      9. Figure 3.9
      10. Figure 3.10
      11. Figure 3.11
      12. Figure 3.12
      13. Figure 3.13
      14. Figure 3.14
      15. Figure 3.15
      16. Figure 3.16
      17. Figure 3.17
      18. Figure 3.18
      19. Figure 3.19
      1. Table 3.1
      2. Table 3.2
      1. Listings 3.1
      2. Listings 3.2
      3. Listings 3.3
      4. Listings 3.4
      5. Listings 3.5
      6. Listings 3.6
      7. Listings 3.7
      8. Listings 3.8
      9. Listings 3.9
      10. Listings 3.10
      11. Listings 3.11
      12. Listings 3.12
  7. Chapter 4 The Visualization Pipeline
    1. 4.1 Conceptual Perspective
      1. 4.1.1 Importing Data
      2. 4.1.2 Data Filtering and Enrichment
        1. See what is relevant
        2. Handle large data
        3. Ease of use
      3. 4.1.3 Mapping Data
        1. Mapping vs. rendering
        2. Desirable mapping properties
        3. Inverting the mapping
        4. Distance preservation
        5. Organization levels
        6. Further reading
      4. 4.1.4 Rendering Data
    2. 4.2 Implementation Perspective
      1. Dataflow design
      2. Dataflow implementation
      3. Visual dataflow programming
      4. Simplified visual programming
    3. 4.3 Algorithm Classification
    4. 4.4 Conclusion
      1. Figure 4.1
      2. Figure 4.2
      3. Figure 4.3
      4. Figure 4.4
      5. Figure 4.5
      6. Figure 4.6
      7. Figure 4.7
      8. Figure 4.8
      9. Figure 4.9
      1. Table 4.1
      1. Listings 4.1
  8. Chapter 5 Scalar Visualization
    1. 5.1 Color Mapping
    2. 5.2 Designing Effective Colormaps
      1. Color legends
      2. Rainbow colormap
      3. Other colormap designs
        1. Grayscale
        2. Two-hue
        3. Heat map
        4. Diverging
        5. Zebra colormap
      4. Interpolation issues
      5. Color banding
      6. Additional issues
    3. 5.3 Contouring
      1. Contour properties
      2. Computing contours
    4. 5.3.1 Marching Squares
    5. 5.3.2 Marching Cubes
      1. Marching algorithm variations
      2. Dividing cubes algorithm
    6. 5.4 Height Plots
      1. 5.4.1 Enridged Plots
    7. 5.5 Conclusion
      1. Figure 5.1
      2. Figure 5.2
      3. Figure 5.3
      4. Figure 5.4
      5. Figure 5.5
      6. Figure 5.6
      7. Figure 5.7
      8. Figure 5.8
      9. Figure 5.9
      10. Figure 5.10
      11. Figure 5.11
      12. Figure 5.12
      13. Figure 5.13
      14. Figure 5.14
      15. Figure 5.15
      16. Figure 5.16
      17. Figure 5.17
      18. Figure 5.18
      19. Figure 5.19
      20. Figure 5.20
      21. Figure 5.21
      1. Listings 5.1
      2. Listings 5.2
  9. Chapter 6 Vector Visualization
    1. 6.1 Divergence and Vorticity
      1. Divergence
      2. Vorticity
      3. Streamwise vorticity
      4. Helicity
    2. 6.2 Vector Glyphs
      1. Line glyphs
      2. Cone and arrow glyphs
      3. 6.2.1 Vector Glyph Discussion
        1. Vector glyphs in 2D
        2. Vector glyphs in 3D
        3. Vector glyphs on 3D surfaces
    3. 6.3 Vector Color Coding
      1. Color coding on 2D surfaces
      2. Color coding on 3D surfaces
    4. 6.4 Displacement Plots
      1. Parameter settings
    5. 6.5 Stream Objects
      1. 6.5.1 Streamlines and Their Variations
        1. Streamlines.
        2. Pathlines
        3. Streaklines
        4. Computing streamlines
        5. Parameter setting
          1. Accuracy
          2. Stop criterion
          3. Geometry
        6. Streamline seeding
      2. 6.5.2 Stream Tubes
      3. 6.5.3 Streamlines and Tubes in 3D Datasets
      4. 6.5.4 Stream Ribbons
      5. 6.5.5 Stream Surfaces
      6. 6.5.6 Streak Surfaces
    6. 6.6 Texture-Based Vector Visualization
      1. Line integral convolution
      2. 6.6.1 IBFV Method
      3. 6.6.2 IBFV Implementation
        1. Parameters
        2. Putting it all together
      4. 6.6.3 IBFV Examples
        1. IBFV on curved surfaces
        2. IBFV on 3D volumes
    7. 6.7 Simplified Representation of Vector Fields
      1. 6.7.1 Vector Field Topology
        1. Topology analysis
        2. Interpolation issues
        3. Excluding critical points
        4. Boundaries
      2. 6.7.2 Feature Detection Methods
      3. 6.7.3 Field Decomposition Methods
        1. Top-down decomposition
        2. Bottom-up decomposition
        3. Multiscale decomposition
        4. Multiscale IBFV
    8. 6.8 Illustrative Vector Field Rendering
      1. Depth-dependent halos
    9. 6.9 Conclusion
      1. Figure 6.1
      2. Figure 6.2
      3. Figure 6.3
      4. Figure 6.4
      5. Figure 6.5
      6. Figure 6.6
      7. Figure 6.7
      8. Figure 6.8
      9. Figure 6.9
      10. Figure 6.10
      11. Figure 6.11
      12. Figure 6.12
      13. Figure 6.13
      14. Figure 6.14
      15. Figure 6.15
      16. Figure 6.16
      17. Figure 6.17
      18. Figure 6.18
      19. Figure 6.19
      20. Figure 6.20
      21. Figure 6.21
      22. Figure 6.22
      23. Figure 6.23
      24. Figure 6.24
      25. Figure 6.25
      26. Figure 6.26
      27. Figure 6.27
      28. Figure 6.28
      29. Figure 6.29
      30. Figure 6.30
      31. Figure 6.31
      32. Figure 6.32
      33. Figure 6.33
      34. Figure 6.34
      35. Figure 6.35
      36. Figure 6.36
      37. Figure 6.37
      1. Listings 6.1
      2. Listings 6.2
      3. Listings 6.3
  10. Chapter 7 Tensor Visualization
    1. 7.1 Principal Component Analysis
    2. 7.2 Visualizing Components
    3. 7.3 Visualizing Scalar PCA Information
      1. Diffusivity
      2. Anisotropy
    4. 7.4 Visualizing Vector PCA Information
    5. 7.5 Tensor Glyphs
    6. 7.6 Fiber Tracking
      1. Focus and context
      2. Fiber clustering
      3. Tracking challenges
    7. 7.7 Illustrative Fiber Rendering
      1. Fiber generation
      2. Alpha blending
      3. Anisotropy simplification
      4. Illustrative rendering
      5. Fiber bundling
      6. Fibers in context
    8. 7.8 Hyperstreamlines
    9. 7.9 Conclusion
      1. Figure 7.1
      2. Figure 7.2
      3. Figure 7.3
      4. Figure 7.4
      5. Figure 7.5
      6. Figure 7.6
      7. Figure 7.7
      8. Figure 7.8
      9. Figure 7.9
      10. Figure 7.10
      11. Figure 7.11
      12. Figure 7.12
      13. Figure 7.13
      14. Figure 7.14
      15. Figure 7.15
      16. Figure 7.16
  11. Chapter 8 Domain-Modeling Techniques
    1. 8.1 Cutting
      1. 8.1.1 Extracting a Brick
      2. 8.1.2 Slicing in Structured Datasets
      3. 8.1.3 Implicit Function Cutting
      4. 8.1.4 Generalized Cutting
    2. 8.2 Selection
      1. Selecting cells
      2. Thresholding, segmentation, and contouring
    3. 8.3 Grid Construction from Scattered Points
      1. 8.3.1 Triangulation Methods
        1. Delaunay triangulations
        2. Voronoi diagrams
        3. Variation of the basic techniques
        4. Implementation
      2. 8.3.2 Surface Reconstruction and Rendering
        1. Using radial basis functions
        2. Using signed distance functions
        3. Local triangulations
        4. Multiple local triangulations
        5. Alpha shapes
        6. Ball pivoting
        7. Poisson reconstruction
        8. Surface splatting
        9. Sphere splatting
    4. 8.4 Grid-Processing Techniques
      1. 8.4.1 Geometric Transformations
      2. 8.4.2 Grid Simplification
        1. Triangle mesh decimation
        2. Vertex clustering
        3. Simplification envelopes
        4. Progressive meshes
      3. 8.4.3 Grid Refinement
        1. Loop subdivision
        2. Advanced subdivision tools
      4. 8.4.4 Grid Smoothing
    5. 8.5 Conclusion
      1. Figure 8.1
      2. Figure 8.2
      3. Figure 8.3
      4. Figure 8.4
      5. Figure 8.5
      6. Figure 8.6
      7. Figure 8.7
      8. Figure 8.8
      9. Figure 8.9
      10. Figure 8.10
      11. Figure 8.11
      12. Figure 8.12
      13. Figure 8.13
      14. Figure 8.14
      15. Figure 8.15
      16. Figure 8.16
      17. Figure 8.17
      18. Figure 8.18
      19. Figure 8.19
      20. Figure 8.20
      21. Figure 8.21
  12. Chapter 9 Image Visualization
    1. 9.1 Image Data Representation
      1. 2D Images
      2. Higher-dimension images
    2. 9.2 Image Processing and Visualization
    3. 9.3 Basic Imaging Algorithms
      1. 9.3.1 Basic Image Processing
        1. Transfer functions
      2. 9.3.2 Histogram Equalization
      3. 9.3.3 Gaussian Smoothing
        1. Fourier transform
        2. Convolution for filtering
      4. 9.3.4 Edge Detection
        1. Gradient-based edge detection
        2. Roberts operator
        3. Sobel operator
        4. Prewitt operator
        5. Laplacian-based edge detection
    4. 9.4 Shape Representation and Analysis
      1. 9.4.1 Basic Segmentation
      2. 9.4.2 Advanced Segmentation
        1. Snakes
        2. Normalized cuts
        3. Mean shift
        4. Image foresting transform
        5. Level sets
        6. Threshold sets
      3. 9.4.3 Connected Components
      4. 9.4.4 Morphological Operations
        1. Dilation and erosion
      5. 9.4.5 Distance Transforms
        1. Distance transform properties.
        2. Brute-force implementation.
        3. Distance transforms using OpenGL
        4. Fast Marching Method.
        5. Other distance transform algorithms
      6. 9.4.6 Skeletonization
        1. Centeredness.
        2. Structural and topological encoding.
        3. Geometrical encoding.
        4. Multiscale shape encoding.
        5. Applications.
      7. 9.4.7 Skeleton Computation in 2D
        1. Using distance field singularities.
        2. Using boundary collapse metric.
        3. Applications
      8. 9.4.8 Skeleton Computation in 3D
        1. Surface skeletons.
        2. Curve skeletons.
        3. Thinning methods.
        4. Distance field methods.
        5. Geodesic methods.
        6. Mesh contraction methods.
        7. Curve skeleton comparison.
    5. 9.5 Conclusion
      1. Figure 9.1
      2. Figure 9.2
      3. Figure 9.3
      4. Figure 9.4
      5. Figure 9.5
      6. Figure 9.6
      7. Figure 9.7
      8. Figure 9.8
      9. Figure 9.9
      10. Figure 9.10
      11. Figure 9.11
      12. Figure 9.12
      13. Figure 9.13
      14. Figure 9.14
      15. Figure 9.15
      16. Figure 9.16
      17. Figure 9.17
      18. Figure 9.18
      19. Figure 9.19
      20. Figure 9.20
      21. Figure 9.21
      22. Figure 9.22
      23. Figure 9.23
      24. Figure 9.24
      25. Figure 9.25
      26. Figure 9.26
      27. Figure 9.27
      1. Listings 9.1
      2. Listings 9.2
      3. Listings 9.3
      4. Listings 9.4
      5. Listings 9.5
      6. Listings 9.6
  13. Chapter 10 Volume Visualization
    1. 10.1 Motivation
    2. 10.2 Volume Visualization Basics
      1. 10.2.1 Classification
      2. 10.2.2 Maximum Intensity Projection Function
      3. 10.2.3 Average Intensity Function
      4. 10.2.4 Distance to Value Function
      5. 10.2.5 Isosurface Function
      6. 10.2.6 Compositing Function
        1. Transfer functions.
        2. Integration issues
        3. Examples
      7. 10.2.7 Volumetric Shading
    3. 10.3 Image Order Techniques
      1. 10.3.1 Sampling and Interpolation Issues
      2. 10.3.2 Classification and Interpolation Order
    4. 10.4 Object Order Techniques
      1. 2D texture methods.
      2. 3D texture methods.
    5. 10.5 Volume Rendering vs. Geometric Rendering
      1. Aims.
      2. Complexity.
      3. Mixed methods.
    6. 10.6 Conclusion
      1. Figure 10.1
      2. Figure 10.2
      3. Figure 10.3
      4. Figure 10.4
      5. Figure 10.5
      6. Figure 10.6
      7. Figure 10.7
      8. Figure 10.8
      9. Figure 10.9
      10. Figure 10.10
      11. Figure 10.11
      12. Figure 10.12
      13. Figure 10.13
      14. Figure 10.14
      15. Figure 10.15
      16. Figure 10.16
  14. Chapter 11 Information Visualization
    1. 11.1 What Is Infovis?
    2. 11.2 Infovis vs. Scivis: A Technical Comparison
      1. 11.2.1 Dataset
      2. 11.2.2 Data Domain
      3. 11.2.3 Data Attributes
      4. 11.2.4 Interpolation
    3. 11.3 Table Visualization
      1. Printing the contents
      2. Mapping values
      3. Sampling issues
    4. 11.4 Visualization of Relations
      1. 11.4.1 Tree Visualization
        1. Node-link visualization
        2. Rooted tree layout
        3. Radial tree layout
        4. Bubble tree layout
        5. Cone tree layout
        6. Treemaps
        7. Squarified treemaps
        8. Cushion treemaps
      2. 11.4.2 Graph Visualization
        1. Hierarchical graph visualization
        2. Orthogonal layouts
        3. Hierarchical edge bundling
        4. Image-based edge bundling
        5. Force-directed layouts
        6. Multiple views
        7. Graph splatting
        8. General graph-edge bundling
          1. FDEB
          2. GBEB
          3. WR
          4. SBEB
          5. KDEEB
          6. Comparing bundling algorithms
        9. Visualizing dynamic graphs
          1. Types of dynamic graphs
          2. Online vs. offline drawing
          3. Visualizing small numbers of keyframes
          4. Using animation
      3. 11.4.3 Diagram Visualization
    5. 11.5 Multivariate Data Visualization
      1. 11.5.1 Parallel Coordinate Plots
      2. 11.5.2 Dimensionality Reduction
      3. 11.5.3 Multidimensional Scaling
      4. 11.5.4 Projection-Based Dimensionality Reduction
      5. 11.5.5 Advanced Dimensionality Reduction Techniques
        1. 1. Least Square Projection (LSP)
        2. 2. Part-Linear Multidimensional Projection (PLMP)
        3. 3. Local Affine Multidimensional Projection (LAMP)
        4. Implementations
      6. 11.5.6 Explaining Projections
        1. Attribute axes
        2. Axis legends
      7. 11.5.7 Assessing Projection Quality
        1. Aggregate point-wise error
        2. False neighbors
        3. Missing neighbors
        4. Group members
        5. Comparing projections
    6. 11.6 Text Visualization
      1. 11.6.1 Content-Based Visualization
      2. 11.6.2 Visualizing Program Code
      3. 11.6.3 Visualizing Evolving Documents
        1. Analyzing the project structure
        2. Analyzing activity
        3. Analyzing growth
        4. Visualizing quality metrics
    7. 11.7 Conclusion
      1. Figure 11.1
      2. Figure 11.2
      3. Figure 11.3
      4. Figure 11.4
      5. Figure 11.5
      6. Figure 11.6
      7. Figure 11.7
      8. Figure 11.8
      9. Figure 11.9
      10. Figure 11.10
      11. Figure 11.11
      12. Figure 11.12
      13. Figure 11.13
      14. Figure 11.14
      15. Figure 11.15
      16. Figure 11.16
      17. Figure 11.17
      18. Figure 11.18
      19. Figure 11.19
      20. Figure 11.20
      21. Figure 11.21
      22. Figure 11.22
      23. Figure 11.23
      24. Figure 11.24
      25. Figure 11.25
      26. Figure 11.26
      27. Figure 11.27
      28. Figure 11.28
      29. Figure 11.29
      30. Figure 11.30
      31. Figure 11.31
      32. Figure 11.32
      33. Figure 11.33
      34. Figure 11.34
      35. Figure 11.35
      36. Figure 11.36
      37. Figure 11.37
      38. Figure 11.38
      39. Figure 11.39
      40. Figure 11.40
      41. Figure 11.41
      42. Figure 11.42
      43. Figure 11.43
      1. Table 11.1
      2. Table 11.2
      1. Listings 11.1
  15. Chapter 12 Conclusion
    1. Scientific visualization
    2. Information visualization
    3. Synergies and challenges
    4. The way forward
      1. Efficiency and effectiveness
      2. Measuring value
      3. Integration
      4. Explorers vs. practitioners
      5. Specialists vs. generalists
  16. Appendix Visualization Software
    1. A.1 Taxonomies of Visualization Systems
    2. A.2 Scientific Visualization Software
      1. The Visualization Toolkit (VTK)
      2. MeVisLab
      3. AVS/Express
      4. IRIS Explorer
      5. SCIRun
      6. ParaView
      7. MayaVi
    3. A.3 Imaging Software
      1. The Insight Toolkit (ITK)
      2. 3D Slicer
      3. Teem
      4. ImageJ
      5. Binvox
      6. OpenVDB
    4. A.4 Grid Processing Software
      1. MeshLab
      2. PCL
      3. CGAL
    5. A.5 Information Visualization Software
      1. The Infovis Toolkit (IVTK)
      2. Prefuse
      3. GraphViz
      4. Tulip
      5. Gephi
      6. ManyEyes
      7. Treemap
      8. XmdvTool
  17. Bibliography