Ever watched the TV show Iron Chef? 3 contestants square off in an epic kitchen battle using the same ingredients, their imaginations, and a 60-minute time limit. Their work and creativity is then judged by a panel of experts. The pressure is intense, feedback can be brutal, and pretty much no one can beat Bobby Flay.
Tableau runs a similar competition called Iron Viz. Contestants are given a theme or a data set and a time limit. They must use their own creativity and ingenuity to tell an amazing story while showcasing their technical chops for the rights to compete onstage in front of 15,000 people at the annual Tableau conference. The best of the best compete, so it’s intimidating to try, and trying to do something amazing in a short timeframe just adds to the pressure.
The theme for Tableau’s second Iron Viz feeder was Health and Well-being. It required participants to build a viz in Tableau that somehow touches on the theme of health and well-being then upload it to their Tableau Public profile and showcase it on social media, like Twitter
I thought hard about what dataset to use for this visualization. I started out researching the Millennium Development Goals (MDG) for my home country of Ghana. Since I was there on vacation at the time, I felt like working on a related viz would be ideal. The topic I decided to go with was “How close is Ghana to achieving its MDG health goals.”
I collected data from the world bank and the UN to answer this question. After creating a few visualizations, I realized this was not going to be an interesting visualization and my audience wouldn’t find it relatable. So, I decided to scrap my first attempt after 3 days in.
Now I was back to square one – finding an interesting topic. In the end, I decided on balancing your diet to contain the optimal number of calories for your age and activity level since it’s a topic I’ve had personal experience with. I remembered the struggles I had for the longest time to gain a healthy weight.
Due to my high metabolism, it was very hard to gain and maintain weight. Being an ectomorph, to gain weight I needed to focus on my calorie intake, long rests and minimum cardio exercises. My weight at the time was 132 lbs but my goal was 150 lbs.
At the time, I had no idea how to track my calorie intake or what foods contain the highest calories or how to make meals that were healthy and balanced. It took me a while to figure this out and meet my goal weight, so for my visualization, I wanted my viz to be both educational as well as a practical tool my audience could use to plan a balanced meal for the day.
I found the data I was looking for in a PDF format here. The dataset was a pretty straightforward list of everyday foods listing their calorie content per average portion, as well as calorie content in 100 grams so it can be compared with any other products not listed there.
Connecting to the Data
In the Tableau connect pane I selected the PDF option then select the PDF document. In the pop-up menu, I selected the ‘Range’ option and put in the range where the tables were located in the PDF document i.e. 1-9
All tables in this range will be populated into Tableau.
Data Prep Process
The first thing that I needed to do was to join all the separate tables together into one union. The first problem I faced was the column headings. All the column headings were not quite right and made it difficult to union the data. I first tried to use Tableau’s built-in data interpreter but this returned the results below and didn’t fix the issue.
The next step was to manually fix all column headings that were like this in the source file, but since the source was a pdf document, this was not possible. Instead, the trick I used was importing the 10 different tables into an Excel format then manually fixing the column headers. You can import database file into Excel or a CSV simply by going into the sheet then click the ‘View’ data icon the top right-hand side of your data pane in Tableau desktop.
You can use CTR + A to select all files and paste directly into Excel or you can simply use the ‘Export All ‘function to export the file into a CSV format. I copied all files into separate Excel sheets and fixed the column headings and also made sure all the 9 tables had matching column names.
I then imported the Excel file back into Tableau and created a union using the ‘New Union’ option to join the tables together.
After creating the union between the tables there were still issues that needed to be fixed. Two columns, Portion size, and Per 100 grams had both text and numbers. I wanted to split these up so I had Portion size in one column, portion size info in another, and ignore the text ‘cals.’
I fixed this using Tableau’s built-in custom split functionality to achieve the result below:
Breaking Down the Visualization
For this visualization, I wanted to go for a fully floating dashboard viz so that I could control spacing and
formatting the way I wanted. I used a fixed horizontal layout to allow me to float elements within it.
Title and Content
I went for a bold title that clearly hits on the topic I wanted to talk about. I used the white bold text in the dark blue background to make it pop. I introduced the visualization to my audience by providing content about what calories are and then proceeded to walk the user through a series of steps they could use to identify a balanced meal for their day.
I decided to use a gray-scale for this dashboard and only use bright colors to call out specific details I want the user to pay attention to, such as the calorie content in particular foods and whether a user is exceeding or below their goal calorie limit.
I chose Tableau’s Ebrima font for this visualization. In the past, I had used Tableau’s default or the Century Gothic font but I wanted to try something different this time.
I wanted to use a minimal number of images in my visualization to avoid clutter. I remember a valuable lesson I learned from Tableau guru Athan Mavrantonis to avoid clutter as much as possible and that if you use an image, it serves a purpose rather than just a decorative item. I used images in 3 sections of the viz. I used the bright image of the foods on the top right to allow the user to have the perception of how healthy foods should look like. That way, when they navigate my visualization, they would have the idea that they’ll be selecting healthy foods at the end.
The next images I used were the icons for the different age groups. This I used to make the viz interactive and fun to use.
The last group of images I used were for the food groups sections. Here I gave background info about the food groups. Since I did not want to use labels here, I decided to create icons using PowerPoint so that a user could hover over the icons and get information about the food groups and the various foods that are in that group.
I chose to use a small multiple chart as a cool way to display the different foods in the food groups and their calorie levels. There were 25- 40 different foods in each food group so a small multiple ended up being the winner for this visual. I combined this type of chart with the gauge chart which I learned to create from Tableau Zen Master Ken Flerlage’s website. With a few tweaks in this calculation and my data source, I was able to replicate the gauge chart as a small multiple. For information on how to create a small multiple charts, you can find a great tutorial on a blog page by Tableau Zen Master Andy Kriebel.
You can check out my post on how I created this small multiple gauge chart.
The purpose of my visualization was to help a user pick out a healthy diet after going through the visualization. The last section of the visualization helps to achieve this. I used a parameter to allow users to set a calorie goal and compare this to a group of selected foods for the day. As they select these foods a counter tells them whether they are meeting their calorie goals or not.
In writing this post, I realize I could have perhaps told a better story with this visualization. I could have perhaps focused on my struggles in gaining weight and how learning about calories helped me to get over that problem. I ended up playing it safe and keeping my visualization very simple. I could have been much better with my time management as well. I spent a long time deciding what to work on. Because I was short on time and close to the deadline, I failed to review my viz one last time and, in the end, failed to include my references.
It was difficult to psyche myself up to participate in the Iron viz feeder contest. I always kept telling myself that I would wait to get better with my design skills to participate but I realized I was just holding myself back with that attitude. The same happened when I participated in Makeover Mondays, VizforSocialGood good projects, and Dataforacause projects. Even in my work, when I get praised for client work, I have the feeling that I am not good enough.
I was so afraid of the competition in the Iron Viz contest that I didn’t even start until my boss, Ryan Nokes convinced me that my skills were good enough to participate. Now I realize that the Iron Viz, Makeover Mondays, VizforSocialGood and Dataforacause contests aren’t about winning, recognition or praise but a journey towards learning and growth and I will use these to develop and become a better Tableau Analyst. Winning might be fun, but the journey and pushing yourself is more important.