From CS294-10 Visualization Fa08

Jump to: navigation, search


A Good Visualization

Head First Java by Kathy Sierra & Bert Bates
An Array of Dogs (page 60)

Array of Dogs


This book by Sierra & Bates is chock-full of good visualizations conducive to learning, and this diagram is one of the early ones. It shows how an array of Dog (a class) objects might be represented using circular shapes for object instances and remote controls in cups for "pointers" or "references".

The diagram shows that a Dog array variable is really a reference to a Dog array object (Dog[]). In the dog array object are slots for a predetermined number of Dog references; hence, each slot in the Dog array object holds a remote control. These references in turn can point to Dog objects, which are the circular objects near the top.

Conceptually, it is difficult for a beginner in Java to grasp the idea that a Dog array variable really represents all this. This visualization makes it clear what is going on in memory, and thus contributes to the learning experience of the reader.


The information being shown in this visualization is composed of concepts. There are three concepts on display:

  • A Dog[] object
  • The expanded Dog array object in memory (what the Dog[] object points to)
  • Individual dog objects in memory (what each element of the Dog array points to)

The concepts are encoded completely with imagery, with explicit drawings and lines. A 'pointer' is drawn as a remote control inside a cup, and where it points is represented by an arrow. A real 'object' in memory is drawn as a circular or oval shape, such as the Dog objects and the Dog array itself. The Dog array is shown to be made up of multiple pointers to Dog objects, and the convention of using the same 'pointer' image is used repeatedly.

I do not believe there are any uninformative elements.

A Bad Visualization

Wired Magazine, September 2008 Edition
Music: Super Cuts (page 92)

Super Cuts


There is a musical artist known as Girl Talk (a.k.a. Gregg Gillis) whose compositions are really mashups of other artists' work. He is known for being able to use hundreds of song samples in an album, where each song is a conglomerate of many different samples representing a wide swath of musical genres.

This diagram attempts to break down one track from Girl Talk's latest album into its component audio samples. The visualization is constrained to a circular structure, presumably to symbolize the circular shape of an audio track on a compact disc or in an attempt to fit the diagram on one page. Unfortunately, the shape makes it difficult to follow the flow of the audio track since the timing numbers eventually get flipped upside-down and sideways. Also, the artists that comprise the mashup are annotated with thin black trail lines which are difficult to follow through the circular diagram. Finally, the visualization uses four layers of color to distinguish audio samples that overlap, but there is no significance to their color or location on the circle (i.e. the innermost/outermost rings do not actually have any special importance in the mashup). The combination of the difficulty in following the path of the diagram and the misleading features are what make this a poorly executed visualization.


This visualization is showing data on 35 music samples over 255 seconds (4:15). The data includes the start and stop times of each music sample as well as the artist and title of the song the sample came from. In addition, there are images symbolizing the artists for each song sample. All of this is mapped onto four circular paths, which I assumed depicted four tracks that were mixed to make the final song.

For each music sample, the following encodings are used:

  • Arc length on a circular path is being used to encode the length of the sample (Quantitative - Interval)
  • Elements of hue are being used to encode the ordering along a particular circular path and distinguish samples that are next to each other (Ordered)
  • Color is being used to encode which circular path a music sample is on (Nominal)

Note that the artist names, titles, and artist images for each song sample are not encoded in any way - they are simply printed and tied to each arc segment with a (difficult-to-follow) line.

I feel that the artist images are largely uninformative, and do not contribute to the visualization's purpose of showing the composition of the final song.


Girl Talk - What It's All About Visualization

Note: Please see the full-resolution visualization as a PDF for full effect: Image:GirlTalkRedone.pdf

The data is now mapped linearly onto six bars of sheet music. Each bar represents 43 seconds of time, and the four tracks that composed the final song are now on the four segments of each bar. The song artists and titles are now printed directly onto each colored bar. Hue and color are still used as before (as ordinal and nominal encodings, respectively), except the difficulty in showing color differences with so many song samples necessitated a legend, which is printed interspersed among the bars. Each part of the legend should be near the song samples it labels. Also, the legend is divided into four parts, following each of the four tracks. You can read the order of the song samples as they are used by reading the legend vertically from the top, down each of the four columns.

This redesign attempts to remove some of the less informative elements of the visualization and make it easier to see the composition of the final song at a glance. In this attempt, I believe it is easier to see and analyze the data in some ways; however, there were tradeoffs that may make this visualization harder to use in other ways.

How it's improved:

  • There is no more need to follow lines away from the visualization to read artist names and song titles
  • The text is upright throughout, meaning it is not necessary to turn the page in order to read some of the data
  • Replacing arcs with straight bars hopefully makes it easier to see which song segments are played together at a glance
  • Also, using length as the encoding variable for song segment length means it is easier to see when several song segments start and stop together (just look for bars that begin or end at the same point)
  • Using length also helps give a more correct sense of song segment length as opposed to arc length
  • The design (drawn on blank sheet music) should be a better mapping to a 'musical' theme


  • I couldn't get the color gradation (hues) to look as aesthetically pleasing as the original visualization
  • Now that the song names and artists are printed in the visualization and are semi-redundantly printed in the legend, there is lots of text that seems to clutter the chart
  • Some of the text was shrunk to fit in each bar, making it unreadable - however, at a high enough resolution, they are actually still readable if the reader looks closely (zoomable UI?)
  • There was a loss of the exact timing information for each song sample; I considered this to be all right because I felt the visualization should be used more to compare the synchronicity of the song samples rather than exactly where they begin or end - however, the lengths are encoded exactly, so a persistent viewer can discover the exact timing by using a ruler
  • The sheet music is cut off every 43 seconds; perhaps it would have been easier to follow if it was one continuous bar, but that would have resulted in an unwieldy image

Also, I would have liked to marked more times on the timeline, but only when segments began and ended. (I.e. something like Tufte's altered line graphs)

[add comment]
Personal tools