In October 2007, I wrote about the "canvass" metaphor for graphing software. This was what I said:
With the advent of AJAX and other
interactive technologies, one can only hope that new graphing software
will use the "canvass" metaphor. If we want to reduce the spacing
between bars, we should be able to grab the bars and move them
together. If we want to change the ordering, we should be able to
mouse over some menu and select a pre-defined ordering scheme, or to
drag and move bars around as we please. etc. etc.
To push this metaphor further, this kind of software should facilitate the "exploratory" stage of graph-making. I blogged about this stage of making sketches before. One longs for software that allows one to flip through many different chart types quickly, to settle on the desired type, and then to make the nitty-gritty changes to the axes, colors, dots, etc.
The revolution has arrived in the form of JMP's Graph Builder function. It is not perfect yet, as even the example I use will show, but I'm excited because we are getting closer to that "canvass" metaphor.
***
I'm going to re-make this inedible pair of donuts from an otherwise quite nice infographics on the growth and nature of spam in the last 10 years. (New Scientist)
I have pointed out the biggest shortcoming of donut charts often: the fact that the most important clue to the size of each sector of the underlying pie chart, that is, the angle at the center of the pie, has been cut off from the chart, and often, as in here, obscured by a number.
There are dramatic shifts in proportions of spam types during the last decade but the effect is underwhelming as depicted.
In the Graph Builder, I can push around the data and create different chart types. First, I made a small-multiples bar chart.
By clicking on the word "Year" and dragging it to a box called "Overlay", I made a paired bar chart:
What about a dot plot instead? This change requires a right click but easy enough:
Here's where I encountered a little inconvenience. It's probably ignorance on my part since I didn't read the manual. I couldn't figure out how to increase the dot size for all dots at once, only one at a time.
In any case, I'm still searching. I want to do a small-multiples line chart. For this, I drag the word "Year" into the bottom of the chart labelled "X", and then right-click to add a line to the dot chart.
This is close to a desired chart type for this data. The change from year to year is highly apparent, and the increased and decreased spam types are also obvious. I would color the increases differently from the decreases if I have the time.
I had a very difficult time (and failed in) getting the year labels to say 1999 and 2009 which are the logical points for this data. JMP seems to have a mind of its own.
Since it takes no time, I experimented some more. By moving "Category" to "Wrap", I reproduced the above chart but in a matrix form:
Finally, I made the "Category" an "overlay" which resulted in this chart. This is kind of like the Bumps chart but obviously a bad idea for this data: (I'm not even showing the really ugly legend).
So, my dream toy -- the "canvass" style graph maker -- is here! It only takes a few minutes to move the data around this canvass, and see these different chart types.
***
I indicated that this goes a long way but isn't perfect. Right now, sketching and exploring is easy but refining and detailing is not as easy.
What I would like to see:
once the general form of the chart is chosen, maybe a second canvass is needed, with Photoshop as a metaphor, in which we can chisel out the nitty-gritty details, like the axis labels, dot sizes, line widths and so on.
Also, the number of chart types can, and I presume will, be increased over time. For instance, I don't think the current version allows a profile chart; it seems to adhere to the overly-rigid rule that a categorical data series should not be connected by a line.
(I should say that in the current release, one way to accomplish this is to save the resulting graph-sketch as a "JMP script" and then go into the code and change things around. But since we are doing point and click, and visual interaction, why not go all the way?)
Most existing graphing software fall into two extremes: the Excel style which is super-rigid, or the R style which allows minute control over every little thing. This, I think, is the third way.