# Visualizing duration (time) estimates

Question: What is the best way to visualize time estimates? Which graph type should one choose?

I have time estimates how long did it take different people to finish the same task. An estimate might be 16 units of time as well as a rough estimate 15 to 20 units of time. I can assume that the values will be positive integers ranging from 1 to 50 and there are 50 datapoints in total.

Example data might look like:

person 1: 7 time units

person 2: 1 to 3 time units

person 3: 42 time units

...

What is the best way to visualize such data? One possible solution would be to take averages of the time intervals (rough estimates) but is there a smarter way of visualization?

A am a programmer so I do not care about the input format. Also I do not have a preference what software should be used, although open-source is a plus. I would go with Python, R, Gnuplot or LibreOffice Calc, but I do not know which type of graph to choose.

Edit: The goal is to see how much time did the task took on average and what was the distribution. Sorry for possibly wrong question, but I am new to plotting and statistics.

• What's your ultimate objective for this data (i.e. the conclusions you want to make?) You could use a bar chart with error bars to represent the interval estimates, similar to this: matplotlib.org/examples/api/barchart_demo.html – Aorus Nov 23 '17 at 0:38
• This might seem nitpicking, but the following distinction is important statistically and to the programmer: you are asking about visualizing durations, not times. Times can be difficult to plot, label, and work with (have you had to deal with leap seconds, different time zones, or daylight savings time?), whereas durations are just numerical quantities, which opens up many more possibilities to the graphic artist as well as to the programmer. – whuber Nov 23 '17 at 0:54
• @Aorus: bar charts depicting averages have the problem that people will believe that data are more likely to lie inside than outside the bar (Newman & Scholl, 2012). In the present case, bars are not necessary. – Stephan Kolassa Nov 24 '17 at 14:12
• @Stephen Kolassa: That's a good point. – Aorus Nov 24 '17 at 15:01

I would recommend a dotchart-type of plot. In R:

set.seed(1)
mins <- sample(5:45,50,replace=TRUE)
maxs <- mins+sample(0:4,50,prob=c(0.6,0.1,0.1,0.1,0.1),replace=TRUE)

plot(range(c(mins,maxs)),c(1,length(mins)),type="n",xlab="",ylab="Participant")
lines(rbind(mins,maxs,NA),rbind(seq_along(mins),seq_along(maxs),NA))
points((mins+maxs)/2,seq_along(mins),pch=19)


The dots give the average of minima and maxima, and the horizontal lines give the ranges. It should be immediately understandable to your audience.

You may want to order participants in ascending or descending order of the minimum (or maximum or mean) - however, this might indicate spurious structure, so whether this is useful will depend on what you want to do. Or you may want to group the dots in some way, or possibly color-code them.