In August 2016 Nielson released a report what’s in our food and on our mind. Page 8 of the report included a set of spiral bar charts showing restricted dietary requirements around the world:
The charts on this page were chosen for week 39 of Makeover Monday. Whilst the infographic is visually engaging I’m not a big fan of the spiral bars. That and the way the different diets are laid out makes it quite hard to visually compare various categories (e.g. low sodium to vegetarian).
The finished makeover follows and is also available on Tableau Public.
Initially I wanted to present the data in a Gantt chart format to show the range of responses for each dietary category across the continents, with each individual continent plotted as a mark within the Gantt bars. There were two problems with this as you can see in the screenshot below. Notice how the coloured circles at the extremes of each bar are centred on the ends of the bar and hence spill out of it. Also for some bars you can only see four circles due to two continents having the same percentage:
I could have switched the circles for thin bars that were the same depth as the Gantt bars. Instead I decided to try something else. I was sure I remembered a submission in week 24 with rounded ends to a Gantt chart, so figured I’d have a go at that. I ended up achieving it using lines. Is that the best way? Check out my steps below.
Using thick lines instead of a Gantt
First up I defined the minimum and maximum percentage (followers) for each diet regardless of continent. This was done using two LOD calculations. Here is an example:
Next I figured I’d need two points with different values to use for the ”path” of each line. Point 1 being the start of the line and point 2 being the end. Luckily we have five points in the data so I just made two of them return a value and the rest return nothing (NULL – implicitly due to the lack of an ELSE):
Now I had a path for points 1 and 2, but I also needed a position to plot those points at on the horizontal axis. I used the same approach as above but this time returned the percentage when min or max:
To put this together I dragged the point onto columns, and the path onto the path card having selected a line mark type. A little bit of formatting to boost up the size and a label at the end of the line resulted in this:
The final step was to add the dual axis chart back in showing each continents actual percentage. I ended up boosting the size of these up and colouring them white except for a continent selected by the user. That way the focus is on the continent that the user wants to look at.
Interesting feedback was that the visual look was quite similar to iOS on/off switches. Oops! That wasn’t something I was aiming for, but I can see why people thought so. The danger of being too similar visually to a concept as familiar as on/off switches is that some users may think that they can interact with the bars as if they are switches.
Great to learn a new technique. Perhaps not so great to have ended up mirroring a UI component in a way that doesn’t follow the conventions for that component! Arguably I haven’t allowed people to compare continents that easily. If I were redoing the visualisation I’d take a look at both of those aspects. There was some great analysis by others in the community looking at different categories of dietary restrictions. I could have used two colours to differentiate diets most likely to be related to health as compared to those more associated with moral/ethical/religious choices. Finally a similar visualisation had a radio button selector for continent instead of a drop down – I definitely should have thought of that given the small number of values.