The adage that “a picture is worth a thousand words” definitely holds true in data visualization, where a graph can help one understand the underlying data. This book builds a powerful graphics package for developing desktop applications with interactive two-dimensional (2D) and three-dimensional (3D) graphs, using Windows Presentation Foundation (WPF).
The book comprises 16 chapters, plus an introduction and an index. After a short overview of WPF programming, the next ten chapters cover 2D graphics. The remaining five chapters are devoted to 3D graphics.
Chapters 2 to 4 present the prerequisites of 2D graphs. First, they explain the mathematical basics: points, vectors and matrices, rotations, scaling, and translations in the homogeneous coordinate system. Then, the author introduces the fundamental concepts of 2D graphics and the 2D drawing model in WPF, such as standard and custom coordinate systems and basic and custom shapes. Chapter 4 completes the section by covering colors and brushes.
With the theory and the basic elements in place, the author moves on to the core of the book--plotting charts in WPF applications. Two chapters cover 2D charts, from the basic to more specialized ones, such as stair-step charts, polar charts, and charts with error bars, detailing all the steps to lay out a standard chart reading data from the file system. Stock charts deserve their own chapter, as they comprise a variety of charts; this also presents the opportunity to show a remote source of data acquired via the hypertext transfer protocol (HTTP).
Edward Tufte coined the term “data-ink ratio,” a concept used against excessive decoration in displaying quantitative information; interactive charts help diminish the amount of virtual ink used, without losing the ability to give detailed information on any data point available. Chapter 8 shows how to zoom in and out of charts and how to retrieve data to display additional information on mouse events. Chapter 9 wraps up the 2D charts applications with reusable custom user controls that allow customized charts to be implemented in WPF applications.
Chapter 10 and 11 cover curve fitting by interpolating existing data with several mathematical methods or by eliminating noise--typically generated by measuring errors--from data. The remaining chapters explore 3D graphics following the path seen in the 2D part of the book: first, the author introduces the underling WPF 3D models, and then he implements basic and specialized 3D charts.
Xu’s writing is clear and easy to follow. The code included is complete, functional, and well written. The target audience for the book is large, as data visualization needs to be included in more and more applications.