# How to best visualize differences in many proportions across three groups?

I'm trying to visually compare how three different news publications cover different topics (determined through an LDA topic model). I have two related methods for doing so, but have received lots of feedback from colleagues that this isn't very intuitive. I'm hoping someone out there has a better idea for visualizing this.

In the first graph, I show the proportions of each topic in each publication, like so:

This is pretty straightforward and intuitive to almost everyone I've talked to. However, it's difficult to see the differences between the publications. Which newspaper covers which topic more?

To get at this, I graphed the difference between the publication with the highest and second highest proportion of topics, colored by the publication with the highest. Like this:

So, the huge bar for football, for example, is really the distance between al-Ahram English and Daily News Egypt (#2 in football coverage), and it is colored red because Al-Ahram is #1. Similarly, trials is green because Egypt Independent has the highest proportion, and the bar size is the distance between Egypt Independent and Daily News Egypt (#2 again).

The fact that I have to explain that all in two paragraphs is a pretty sure sign that the graph fails the self-sufficiency test. It's hard to tell what's really going on by just looking at it.

Any general suggestions about how to visually highlight the dominant publication for each topic in a more intuitive way?

Edit: Data to play with: Here's dput output from R, as well as a CSV file.

Edit 2: Here's a preliminary dot plot version, with the diameters of the dots proportional to the proportion of the topic in the corpus (which is how the topics were originally sorted). Though I still need to tweak it a little more, it feels a lot more intuitive than what I was doing before. Thanks everyone!

• I just added some data (for R and a CSV). I haven't finished choosing good colors yet (hence the Christmasy red/green), though I'm aware of the color blind issues :) Mar 14, 2014 at 1:31
• The mention of "proportions" is a bit of a red herring here, as the data are not really proportions and more importantly, none of the graphical solutions so far depends on the data being proportions. This is good because the solutions have relevance to a wide range of data, but don't be misled. Mar 14, 2014 at 11:46
– chl
Apr 23, 2014 at 14:06
• Andrew, regarding your latest edit, I think it would be better with the vertical grid lines. They create a checker pattern but don't add much value, assuming you don't care about reading precise values from the graph.
– xan
Apr 23, 2014 at 17:30
• Without the vertical lines? Apr 23, 2014 at 20:29

Thanks for making the data accessible and for an interesting dataset and graphical challenge.

My main suggestion is of a (Cleveland) dot chart.

The most important details I would like to emphasise:

1. Superimposition here allows and eases comparison.

2. The order of topics in your displays appears quite arbitrary. Absent a natural order (e.g. time, space, an ordered variable) I would always sort on one of the variables to provide a framework. Which to use could be a matter of whether one is particularly interesting or important, a researcher's decision. Another possibility is to order on some measure of the differences between papers, so that topics receiving similar coverage were at one end and those receiving different coverage at the other end.

3. Open markers or point symbols allow overlap or identity to be resolved better than closed or solid markers or symbols, which in the worst cases obscure or occlude each other. (An alternative that might work quite well here is letters such as A, D and I for the three newspapers.)

There is clearly much scope for improving my design. For example, is the lettering too large and/or too heavy? On the other hand, the headings must be easily readable, or else the graph is a failure.

Some smaller, pickier points:

a. Red and green on your graph is a colour combination to be avoided. When different markers are used, colour choices are a little less crucial.

b. The horizontal ticks on your graph are distracting. In contrast, grid lines on mine are needed, but I try to make them unobtrusive by using thin, light lines.

c. Your graph shows percents and the total is about 20 $$\times$$ 0.1% or 2%, so 98% of the papers is something else? I used the proportions directly in the .csv provided.

Cleveland dot charts owe most to

Cleveland, W.S. 1984. Graphical methods for data presentation: full scale breaks, dot charts, and multibased logging. American Statistician 38: 270-80.

Cleveland, W.S. 1985. Elements of graphing data. Monterey, CA: Wadsworth.

Cleveland, W.S. 1994. Elements of graphing data. Summit, NJ: Hobart Press.

One precursor (more famous statistically for quite different work!!!) was

Pearson, E.S. 1956. Some aspects of the geometry of statistics: the use of visual presentation in understanding the theory and application of mathematical statistics. Journal of the Royal Statistical Society A 119: 125-146.

Another earlier use of the same main idea is in

Snedecor, G.W. 1937. Statistical Methods Applied to Experiments in Agriculture and Biology. Ames, IA: Collegiate Press. See Figures 2.1, 2.3 (pp.24, 39).

and in each successive edition until 1956. Note that the title and the publisher change intermittently between editions.

For those interested, the graph was prepared in Stata after reading in the .csv with code

graph dot (asis) prop , over(pub) over(label, sort(1)) asyvars
marker(1, ms(Oh)) marker(2, ms(+)) marker(3, ms(Th)) linetype(line)
lines(lc(gs12) lw(vthin)) scheme(s1color)

• This is awesome—thanks! The percents unfortunately don't add up to anything because the values are standardized means from a large corpus of documents (i.e. every document in each publication consists of some combination of the 20 topics, discovered by LDA—this shows the normalized means… hence the small numbers) Mar 14, 2014 at 3:20
• Also, the topics are ordered by their proportion in the corpus. Egypt governance is the most commonly appearing topic, while miscellaneous is the rarest topic. But using that order here makes the dots/symbols slightly harder to visually follow. Mar 14, 2014 at 3:33

The dot plot from Nick Cox is probably best for the complete picture. If you really want to emphasize the first versus second relationship, here's a modification to your chart that offsets the difference bar with the length of the second bar.

And for a different big picture view, you can try something like a slope chart or parallel coordinates plot. The lines may be a bit too crowded here, but it may work if you want to highlight on a subset of the topics.

Also, you might try helpmeviz.com which is geared towards very specific data viz questions like this.

• Interesting! Minute point: the axis title or label "proportion" does not match the units of %. Mar 14, 2014 at 8:54
• Ooh, this is really interesting. I'm going to play with this to see if it can complement the dot chart. Mar 14, 2014 at 15:05

My first instict was to suggest a Mosaic plot; it graphs each sub-category as a rectangle, where one dimension represents the total count for the main category and the other dimension represents the sub-category's proportionate share. There's an R package to draw them, but it's also fairly straightforward to do with lower-level graphing tools.

However, mosaic plots (like percentage-based stacked bar graphs) work best if there are only 2 or 3 categories in the dimension in which you want to compare proportions. So they would work well if you wanted to compare differences between topics in the proportion of articles that were in each of three newspapers, but not so much for your intended use, comparing differences between three newspapers in the proportion of coverage for each topic. A subtle but important distinction!

For what you want to emphasize, I think the most effective graph is one of the simplest -- a grouped bar graph. More people understand bar graphs than dot charts; at a glance, you can see that you're comparing quantities of different size, and the values you want to compare are side-by-side.

However, if you really wanted to emphasize the differences in proportion, you could create a custom grouped bar graph, modified to position each group so that the median value per category is aligned with the axis, instead of the zero values:

                  Difference in proportion of coverage
per Newspaper,
relative to category median
(narrow bars)
____-0.1%____0_____0.1%____0.2%_____
|
|********|*****
A       |~~~~~~~~|
|####    |
|
|****|**********
B           |~~  |
|####|
|
|*****  |
C        |~~~~~~~|~~~~~
|#######|
|
|***        |
D    |~~~~~~~~~~~|
|###########|##
|
0.2%_____0.1%____0_____
Median proportion of coverage
per category, all papers
(large bars)


Note that the bars in each group are still aligned for easy comparison of size, and that each group's baseline is now positioned to the left of the axis according to that group's median value, while the bars that project to the right of the axis are equivalent to your second bar graph showing the difference between the top two categories.

Regardless of whether you use a standard grouped bar graph or an offset-adjusted graph like the above, you could still take an idea from mosaic plots and make the width of each bar proportional to the total article count for that newspaper (so the size of the bar is proportional to the number of articles in that newspaper in that category).

Since your test statistic is a property of each comparison, not of individual values, I don't think it's useful to scale every data point according to the significance. Instead, I would have an icon next to each grouping representing significance. For academic publication, the standard */**/*** has the benefit of familiarity, but you could get creative if you wanted to show the full continuum of the statistic.

• The main idea here is to group the bars vertically. That's a widely used design, but implies 60 bars vertically rather than 20 in the poster's original. Although you can clearly tweak bar width, I think you're going to need more space to do it well in this case, especially as you want to add space between groups. Mar 15, 2014 at 11:20
• @NickCox That is a downside compared to the more compact original chart, although you could rotate the whole graph 90 degrees if a landscape-oriented figure suited your overall layout. Mar 15, 2014 at 17:15
• You could, but 60 bars is tough from left to right too, and 20 labels such as "Muslim Brotherhood and politics" would have to remain readable... Mar 15, 2014 at 17:26
• You might be able to get it to work by having the bars in a group on top of each other instead of side-by-side. Hard to say without seeing a mockup (and my ASCII art isn't very good at conveying look and feel). It would be less intuitive since it's not as familiar a structure, and might lead to confusion if two bars are nearly the exact same height. But if the alternative is one-pixel wide bars... Mar 15, 2014 at 18:43
• So, you are approaching the suggestion in my answer of a dot chart. Mar 15, 2014 at 19:00

Have you tried a bubble chart? https://code.google.com/apis/ajax/playground/?type=visualization#bubble_chart

The individual topics could be circles and each circle could be pie chart of the percentage that each news outlet covers the topic. The size of the circle could indicate the relative coverage of the topic. e.g if more total articles are written about oil than culture then the oil circle has a bigger diameter.

• What would the $[X,Y]$ coordinates be then? Mar 14, 2014 at 8:30
• @NickStauner I didn't see the edited question with the data set when I originally answered this. The co-ordinates wouldn't signify much but the number publications. The circles can be clustered by topic or by diameter size. I don't know why percentages were used in the first place since the numbers are extremely small. Mar 15, 2014 at 17:02