开发者

How would I visualize the amount of time that's passed between dates?

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 c开发者_StackOverflowould 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!


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 both absolute and relative (i.e., time elapsed within a release cycle as well as 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 progress w/r/t the next target release

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.

So in the plot below, i 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 install).

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.

How would I visualize the amount of time that's passed between dates?


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


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

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜