views:

44

answers:

3

If I had a product and wanted to visualize the amount of time that has passed between releases of that product, what type of graph would I use? What I'm trying to show is the average amount of time that has passed between release cycles, as well as (approximately) how far through the current release cycle we currently are.

The best I could come up with is a horizontal bar graph. Each bar would have a date associated with it that marked a particular release, and the length of the bar could indicate how much time has passed, maybe even list the exact number of days, but I could imagine that being slightly confusing, e.g. is that the amount of time that's passed before that release or after that release?

I imagine there must be a better way to visualize this.


UPDATE: I think I may have explained it poorly; let me try another approach. This buying guide does almost exactly what I want. It's compact, it lists when the releases happened, you can see roughly how long one release took compared to another (relatively), and the unfinished release is shown so you can get an idea of about how far through the average cycle you are. But one of the problems it has is that it is difficult to tell whether a particular stretch of time in between releases came before a particular date or afterwards. I was thinking about making the bars bigger and putting in the number of days too, which would only make the before/after ambiguity worse. So my question is, how can this chart be improved to be more visually intuitive? Thanks!

A: 

Maybe a Gantt Chart? For each release, you could use a row to the duration that the release was active. Also, you could include rows for development time. You would be able to visualize pretty easily a number of metrics...

  • Time between releases
  • Duration of each release
  • % completion of current dev cycle
  • Development periods compared release to release
tschaible
I considered that, but I don't think that's right. Since one of the axises on a Gantt chart is time, the chart would either have to be extremely long, or so short that the length of the data plotted on the chart would be too small to be useful.
Brandon Weiss
A: 

I think I'd probably use some sort of Timeline, good examples

Richard Harrison
Hmm, I don't think that's it either. The problem with a timeline is it doesn't give any indication how long the period between two releases is in comparison to the other periods between releases. And then again, there's the problem of size. A timeline is either going to take up too much space, or be so small that the increments on it become meaningless.I'm sure the answer is some kind of bar chart, or some combination of bar chart and another chart, I just can't figure out what.
Brandon Weiss
+1  A: 

From your Question and your comments to the two answers prior to mine, your dataviz technique will have to

  • show the amount of time that has passed between release cycles;

  • show "nested" time (i.e., within a release cycle and between them) which is practically awkward because, as you said, either you're forced to use a tiny font to fit your plot on an 8.5 x 11 page, or the plot is so wide that it doesn't conveniently print and it's too difficult for a readerto capture in a single glance; and

  • show how far through the current release cycle we currently are.

For the first item, i just used an axis scaled to time (x-axis). For the second, i used the y axis to represent intra-project time--where as, time between projects is on the x-axis. Doing this, keeps the plot size manageable. For the third item, i prefer to represent duration differently for cases like this--i.e., where there's a definite start and a definite finish. In other words, when my boss asks me how a certain project is going, i think i naturally say "50% complete" or something like that, rather than "we are four weeks into it". I think "thermometer symbols can be visually intuitive here--i.e., you show progress by filling a container symbol.

So in the plot below, i am trying to show five separate projects (versions 1 through 5). The x-axis is in weeks and shows how far apart in time are the project start dates for each. The y-axis (which i didn't show, instead relying on the color fill in the thermometer symbol to show "degree of completion of each project.

I created this plot in R (using only libraries in the base config). Here's the code:

# synthetic data:
x = c(1, 10, 22, 40, 58)           # x-axis
y = c(2, 5.5, 9, 12.4, 15.0)       # y-axis
z = c(1, 0.9, 0.80, 0.67, 0.25)    # % fill for thermometer symbols

# create the plot:
plot(x, y, ann=F, axes=F, type="n")
symbols(x, y, thermometers=cbind(0.5, 4, z), inches=1.2, fg=rep(3, 5), 
         ann=F, axes=F)
axis(side=1, at=xt, lwd.ticks=1.3, col="steelblue4", col.ticks="red")

A few comments in case you're not familiar with R. First, the 'plot', and 'axis' function calls could have been omitted. The other three are purely for aesthetics ('plot' was called to create a plot with no data, no labels, and no visible axis, so that i could draw my custom axis later and leave the y-axis out entirely; 'axis' is just for drawing a custom x-axis, with the tick marks where i wanted them.) 'symbols' is the only call required. The 'thermometer' argument is a matrix in which the first two columns are the symbol width and height, respectively, and the third column is the % filled ('z'); 'inches' is the actual symbol size, and 'fg' is the fill color for each symbol, i.e., 'rep(3,5) just means '3' repeated 5 times, where '3' is just a convenience symbol for the lovely green color you see below.

alt text

doug
Wow, I really appreciate your detailed response, it definitely comes closest to answering the question, but unfortunately it's not quite what I was looking for :( I think I may have just done a bad job of explaining it to begin with. Let me try a different approach. I found an example of what I'm trying to accomplish here (http://buyersguide.macrumors.com/#MacBook_Pro), it's just visualized poorly. The bar chart is compact, denotes when a release happened by listing the date, and you can roughly see how the length of time in between release cycles compared. But, can it be done better?
Brandon Weiss