A1-EvanChang
From CS294-10 Visualization Fa07
Contents |
[edit] The Good Visualization

Source: Per Pinstrup-Anderson and Fuzhi Cheng. "Still Hungry". Scientific American, September 2007, page 101.
[edit] Explanation
This graphic compares the global progress with the progress in China toward meeting the 1996 World Food Summit Goal of reducing the number of undernourished people by half by 2015. From the graphs, we see that China has made progress as shown by the line indicating the number of undernourished Chinese (the blue line) tracking fairly closely to the goal line (the red line). In contrast, we see that globally there is a widening gap between the number of undernourished and the goal.
[edit] Deconstruction
This visualization is a time-series that plots integer data corresponding to the number of undernourished people (Q, interval) both globally and in China (N) over the period from 1990 to the present to a projection for 2015 (Q, interval). The data set is somewhat suspect, as it is very small with only 6 actual data points (plus 2 points for the projected undernourished).
[edit] Critique
While the graphic seems to convey the point that China is making progress towards solving hunger, there are however some issues with this graphic. The most critical is the difference in scales on the left and the right. In particular, the same spacing vertically corresponds to different number of people. The slope of the WFS line should be the same, but looks different visually. Fortunately, correcting this would only further emphasize the point they are trying to make. Also, we aren't given any information on how the projection is obtained and may be over-stating the progress that has been and will be made in China.
[edit] The Bad Visualization

Source: Nielson et al. Principles of Program Analysis, page 2.
[edit] Explanation
This graphic is cited with reference to following program fragment:
read(x); (if x>0 then y:=1 else (y:=2; S)); (*) z:=y
where S is some statement that does not assign to y and does not terminate for x <= 0 and y = 2.
This graphic is intended to illustrate the need for approximation in program analysis, that a program analysis must often give a larger set of possible values than the actual possible program values (because of undecidability). For example, in the code fragment at the program point indicated by (*), an analysis would likely say that the value of y may be 1 or 2 (though 2 is not actually possible). I think the left portion is supposed to indicate the actual possible program values (to the left of the solid line) and the right portion are possible additional safe answers (to the right of the solid line).
[edit] Deconstruction
The diagram shows abstractly the labeling of analysis results (e.g., possible values of a program variable) as true answers or true and safe answers (N).
[edit] Critique
There's a big disconnect between the code example and the diagram. I believe the elements di's are supposed to represent analysis results abstractly, but it's not clear nor discussed in the surrounding text. What the top line and bottom line mean is also not very clear. I believe the top line indicates the answer from an ideal oracle that can distinguish the true answer from other elements and the bottom is the analysis result, which must include the true answer (shown by the solid line) and possibly some additional values (shown with the dotted line). The solid vertical lines on the ends seem uninformative.
[edit] Redesign
In this redesign, I tried to make the diagram directly apply to the example code fragment. I've also used the same concrete values as was used in the text. I have used standard Venn diagrams to denote the set of possible values with the appropriate labeling. Perhaps I have given some additional information by giving two possible analysis results to covey difference in precision (though this might have been the intention with the dotted line in the original diagram).

