From CS 294-10 Visualization Sp10

Jump to: navigation, search





The visualization compares the contributions of all of the countries who have pledged money to Haiti thus far, based on the provided data set. Given the data set, the best measures of "generosity" were total money pledged and money pledged per-capita. In my visualization, I attempt to allow the user to quickly determine the relative positions of each country in both respects. The dotted line on each graph represents the mean value for the 32 countries.


  • Per-capita Donations: Q (position), O (position), O (hue)
  • Total Donations: Q (position), O (position)
  • Population: O (size)
  • Country Name: N (hue, label)

Design Choices

Major Choices

I decided that I wanted the visualization to be more about comparisons between countries than about raw figures, so I threw away the data on non-governmental contributions.

Because the data was so skewed, I threw out the idea of using a pie chart, as most of the smaller countries would be indistinguishable. The first 6 countries account for over 75% of the total donations, so squeezing 26 countries in 90 degrees of a pie chart seemed unwise.

I originally planned to do a total vs. per-capita scatterplot. I also tried doing a group bar-chart with total and per-capita donations. Neither of these approaches worked for me because there didn't seem to be a useful relationship between those variables. Instead, I chose to use two separate bar charts, linking them with color and lines (explained below). This way, I could sort by both variables. Using horizontal charts facilitates comparison more than two vertical charts side by side, and I didn't want one chart to grow downward. Also, using position to encode both variables ensures that they are easily grasped by the viewer.

I ordered the nations by color (with the per-capita data), with the most generous in blue and the least in orange. On the other graph, the countries maintain the same color, so one can gauge (rough) relative position on the first graph without needing to rescan. I also connect countries with black lines, but only when the countries jump by at least 10 rankings. This identifies countries with the largest discrepancies.

I encoded the population data via font size. Normally one has to contend with varying word lengths obfuscating the intended size, but since I used country codes rather than full names on the bar graphs, size judgments (if only ordinal ones) are largely unambiguous. It took a fair bit of tweaking to choose an appropriate scale. Since the actual population difference is a factor of ~400, I had to choose a logarithmic scale, and it needed to be further offset to really make the differences noticeable. I believe the effort was worth it, though; it reveals a subtle trend for smaller countries to give significantly more per capita.

Minor Choices

I chose a blue-orange gradient rather than a green-red gradient because orange and blue are distinguishable even for most colorblind people, whereas green-red colorblindness is by far the most common form of colorblindness.

The magic number "10" for the jump-cutoff was fairly arbitrary. Rendering all of the lines was much too cluttered.

Instead of using a lot of grid lines, I only rendered a few major gridlines (and only the first and last with labels) and instead used implicit gridlines on the bar, as inspired by VDQI.


The dashed, green "mean" lines should be labeled as such.


This image was generated using Common Lisp and the Vecto library. Everything is specified in proportions, so I can generate arbitrarily large (or small) versions of the image, within reason.

[add comment]
Personal tools