Solved – Pie charts vs. dot plots

computational-statisticsdata visualizationpie chartr

I understand the critiques of pie charts as referenced here:
Problems with pie charts

However, the above response (and the R manual) always cite dot plots from Cleveland as an alternative. My question is why are dot plots considered an alternative? It seems to be that dot plots only apply when:

  1. the data set is relatively small (so that you can perhaps even by eye count dots in the plot, each dot corresponding to a data point, and

  2. they are not intended to display percentages / density estimates of data.

It seems to me like the main goal of the pie chart is (even if it does so badly) to highlight the fact that the categories must sum to 1 or 100%. with the dot plots you can show the cardinal value of each category, but it will not be obvious what fraction of all the categories a particular value is. Also, with a pie chart it doesn't matter if you have 10 data points or 1,000,000, where as a dot plot with a million points (even if the number of categories is small) seems odd and might just collapse to a bar graph.

Could someone explain why dots plots are seen as an alternative and maybe provide a few examples of dot plots to other quantitative alternatives to pie charts (like bar plots?)

Best Answer

There are two different types of chart that that are referred to as 'dotplots' and I think that you are getting the two confused. The type of dotplot that it looks like you are thinking about is really a variation on a histogram and does not convey the same type of information that a pie chart would.

The type of dotplot from Cleveland is essentially a bar chart with a dot placed at the end of each bar, then the bar is removed. So even with millions of data points, they would be tabled the same as for creating a pie chart, then a single dot is plotted for each category. The summary preparing for the plot is the same in a pie chart and a dotplot: the difference is in a pie chart you are trying to compare non-aligned angles or areas (and the temptation to add chartjunk or otherwise distort the perception of the values is much higher) and in the dotplot you are comparing points on an aligned scale.

If you want the viewer to be able to easily judge percentage of the whole then just make sure that the axis for the dot positions goes from 0 to the total count. You can also easily add another axis (or replace the main one) that shows the percentage rather than the counts, then the percentage can be read off that axis much more accurately than estimating angles and areas in pie charts.

Here are a couple of examples using R:

This is the type of dotplot that I think you are thinking of, and this would not replace a pie chart:

library(TeachingDemos)
dots(round( rnorm(100),0 ) )

enter image description here

But this is the type of dotplot being referred to in Cleveland as a replacement for pie charts:

# steal data from ?pie
pie.sales <- c(0.12, 0.3, 0.26, 0.16, 0.04, 0.12)
names(pie.sales) <- c("Blueberry", "Cherry",
    "Apple", "Boston Cream", "Other", "Vanilla Cream")
par(mfrow=c(2,1))
dotchart(pie.sales*100)
# or
par(xaxs='i')
dotchart( pie.sales*100, xlim=c(0,100) )

enter image description here