Synopses & Reviews
Enormous quantities of data go unused or underused today, simply because people can't visualize the quantities and relationships in it. Using a downloadable programming environment developed by the author, Visualizing Data demonstrates methods for representing data accurately on the Web and elsewhere, complete with user interaction, animation, and more.
How do the 3.1 billion A, C, G and T letters of the human genome compare to those of a chimp or a mouse? What do the paths that millions of visitors take through a web site look like? With Visualizing Data, you learn how to answer complex questions like these with thoroughly interactive displays. We're not talking about cookie-cutter charts and graphs. This book teaches you how to design entire interfaces around large, complex data sets with the help of a powerful new design and prototyping tool called "Processing".
Used by many researchers and companies to convey specific data in a clear and understandable manner, the Processing beta is available free. With this tool and Visualizing Data as a guide, you'll learn basic visualization principles, how to choose the right kind of display for your purposes, and how to provide interactive features that will bring users to your site over and over. This book teaches you:
- The seven stages of visualizing data -- acquire, parse, filter, mine, represent, refine, and interact
- How all data problems begin with a question and end with a narrative construct that provides a clear answer without extraneous details
- Several example projects with the code to make them work
- Positive and negative points of each representation discussed. The focus is on customization so that each one best suits what you want to convey about your data set
The book does not provide ready-made "visualizations" that can be plugged into any data set. Instead, with chapters divided by types of data rather than types of display, you'll learn how each visualization conveys the unique properties of the data it represents -- why the data was collected, what's interesting about it, and what stories it can tell. Visualizing Data
teaches you how to answer questions, not simply display information.
Frys work demonstrates methods for representing data accurately on the Web and elsewhere, complete with user interaction, animation, and more. This book also shows readers how to design entire interfaces around large, complex data sets.
About the Author
Ben Fry received his doctorate from the Aesthetics + Computation Group at the MIT Media Laboratory and was the 2006-2007 Nierenberg Chair of Design for the Carnegie Mellon School of Design. He worked with Casey Reas to develop Processing, which won a Golden Nica from the Prix Ars Electronica in 2005. Ben's work has received a New Media Fellowship from the Rockefeller Foundation, and been shown at the Museum of Modern Art, Ars Electronica, the 2002 Whitney Biennial and the 2003 Cooper Hewitt Design Triennial.
Table of Contents
Preface; The Audience for This Book; Background Information; Overview of the Book; Safari® Books Online; Acknowledgments; Conventions Used in This Book; Using Code Examples; We'd Like to Hear from You; Chapter 1: The Seven Stages of Visualizing Data; 1.1 Why Data Display Requires Planning; 1.2 An Example; 1.3 Iteration and Combination; 1.4 Principles; 1.5 Onward; Chapter 2: Getting Started with Processing; 2.1 Sketching with Processing; 2.2 Exporting and Distributing Your Work; 2.3 Examples and Reference; 2.4 Functions; 2.5 Sketching and Scripting; 2.6 Ready?; Chapter 3: Mapping; 3.1 Drawing a Map; 3.2 Locations on a Map; 3.3 Data on a Map; 3.4 Using Your Own Data; 3.5 Next Steps; Chapter 4: Time Series; 4.1 Milk, Tea, and Coffee (Acquire and Parse); 4.2 Cleaning the Table (Filter and Mine); 4.3 A Simple Plot (Represent and Refine); 4.4 Labeling the Current Data Set (Refine and Interact); 4.5 Drawing Axis Labels (Refine); 4.6 Choosing a Proper Representation (Represent and Refine); 4.7 Using Rollovers to Highlight Points (Interact); 4.8 Ways to Connect Points (Refine); 4.9 Text Labels As Tabbed Panes (Interact); 4.10 Interpolation Between Data Sets (Interact); 4.11 End of the Series; Chapter 5: Connections and Correlations; 5.1 Changing Data Sources; 5.2 Problem Statement; 5.3 Preprocessing; 5.4 Using the Preprocessed Data (Acquire, Parse, Filter, Mine); 5.5 Displaying the Results (Represent); 5.6 Returning to the Question (Refine); 5.7 Sophisticated Sorting: Using Salary As a Tiebreaker (Mine); 5.8 Moving to Multiple Days (Interact); 5.9 Smoothing Out the Interaction (Refine); 5.10 Deployment Considerations (Acquire, Parse, Filter); Chapter 6: Scatterplot Maps; 6.1 Preprocessing; 6.2 Loading the Data (Acquire and Parse); 6.3 Drawing a Scatterplot of Zip Codes (Mine and Represent); 6.4 Highlighting Points While Typing (Refine and Interact); 6.5 Show the Currently Selected Point (Refine); 6.6 Progressively Dimming and Brightening Points (Refine); 6.7 Zooming In (Interact); 6.8 Changing How Points Are Drawn When Zooming (Refine); 6.9 Deployment Issues (Acquire and Refine); 6.10 Next Steps; Chapter 7: Trees, Hierarchies, and Recursion; 7.1 Using Recursion to Build a Directory Tree; 7.2 Using a Queue to Load Asynchronously (Interact); 7.3 An Introduction to Treemaps; 7.4 Which Files Are Using the Most Space?; 7.5 Viewing Folder Contents (Interact); 7.6 Improving the Treemap Display (Refine); 7.7 Flying Through Files (Interact); 7.8 Next Steps; Chapter 8: Networks and Graphs; 8.1 Simple Graph Demo; 8.2 A More Complicated Graph; 8.3 Approaching Network Problems; 8.4 Advanced Graph Example; 8.5 Mining Additional Information; Chapter 9: Acquiring Data; 9.1 Where to Find Data; 9.2 Tools for Acquiring Data from the Internet; 9.3 Locating Files for Use with Processing; 9.4 Loading Text Data; 9.5 Dealing with Files and Folders; 9.6 Listing Files in a Folder; 9.7 Asynchronous Image Downloads; 9.8 Using openStream( ) As a Bridge to Java; 9.9 Dealing with Byte Arrays; 9.10 Advanced Web Techniques; 9.11 Using a Database; 9.12 Dealing with a Large Number of Files; Chapter 10: Parsing Data; 10.1 Levels of Effort; 10.2 Tools for Gathering Clues; 10.3 Text Is Best; 10.4 Text Markup Languages; 10.5 Regular Expressions (regexps); 10.6 Grammars and BNF Notation; 10.7 Compressed Data; 10.8 Vectors and Geometry; 10.9 Binary Data Formats; 10.10 Advanced Detective Work; Chapter 11: Integrating Processing with Java; 11.1 Programming Modes; 11.2 Additional Source Files (Tabs); 11.3 The Preprocessor; 11.4 API Structure; 11.5 Embedding PApplet into Java Applications; 11.6 Using Java Code in a Processing Sketch; 11.7 Using Libraries; 11.8 Building with the Source for processing.core; Bibliography; Colophon;