visualizing data: book review
Ben Fry’s new book Visualizing Data is an introduction to applied visualization that should appeal to a wide audience. Designers, software engineers, and anyone curious about how to represent data with pictures will find it to be a good introduction to visualization techniques. Although the examples use Processing, a Java-based toolkit that Fry developed, the principles are widely applicable. Prior programming experience is necessary to get much out of this book, but Fry explains various Java idioms in the examples so you don’t need to be a Java guru to follow along.
In Chapter 1, Fry outlines his seven-stage iterative process for building visualizations: acquire data, parse data, filter data, mine data, represent data visually, refine the visualization, and interact with the result. All of the examples in this book are constructed with respect to each of these seven stages. Chapter 2 introduces the reader to the Processing toolkit and describes it as a “sketching” environment for rapid visualization prototyping.
Chapters 3 through 8 walk the reader through construction of common types of visualizations: mapping, time series, connections and correlations, scatterplot maps, trees and hierarchies, and networks and graphs. Chapters 9 and 10 offer some tips on acquiring and parsing data in different formats for use in visualizations, which are most useful for those readers without much software engineering experience. Chapter 11 outlines how to integrate Processing into existing Java applications and goes into some detail of how event handling works in Processing. The bibliography points to a number of varied sources in information visualization and design that are worth exploring if this book whets your visualization appetite.
Fry’s approach emphasizes simplicity: many data sets are multidimensional, but that doesn’t mean a multidimensional visualization is the best way to represent such data. When building visualizations, Fry encourages readers to start with a set of clear questions about the data, then come up with a visual representation that is best able to answer those questions. One example question from the book asks how United States ZIP codes relate to geographic location. In order to answer it, Fry walks the reader through construction of a visualization that highlights ZIP codes on a map of the United States. By interacting with the visualization, the user is easily able to see how digits in a ZIP code correspond to specific geographic locations on the map.
When presenting refinements to the examples in the book, Fry introduces the reader to basic concepts in colour theory, typography, and the cognitive aspects of human-computer interaction. Fry also outlines some software engineering techniques like how to use threads to asynchronously load data into a visualization. I especially enjoyed the way that he incorporates these concepts within the context of a specific problem. Instead of providing some general guidelines on colour theory, for example, Fry shows the reader a visualization that is ineffective at conveying meaning due to its poor choice of colours, provides the underlying theory, and then refines the visualization to use a more effective colour scheme.
In general, I thought Fry’s presentation was thoughtful and instructive. The only exception is that there are a number of typos, syntactic errors, and mistakes in the source code examples that I found to be somewhat distracting and annoying while I was following along.
Visualizing Data isn’t a thorough examination of the field of information visualization, nor does it pretend to be. Those readers looking for an introduction to more advanced concepts are advised to look to the references in the book’s bibliography. Also, this book only scratches the surface of Processing so readers looking for a thorough reference to the Processing toolkit are advised to look elsewhere. Instead, this book serves to introduce readers to basic concepts in applied visualization and I think it does an admirable job.
No comments
Jump to comment form | comments rss [?] | trackback uri [?]