Sunday, April 12, 2015

My Tableau Iron Viz Submission

I have been a Tableau user for over four years now. While I have always wanted to participate in the Tableau Iron Viz contests, this is the first time that I actually got around to submitting an entry. The dashboard I created is stylistically different from the usual dashboards I create. In this blog post, I will describe the process I used to create the dashboard along with some insights into the design decisions I made.

Iron Viz 2015 Wikipedia Guide to French Impressionists by Shine Pulikathara

Click the image to view the interactive dashboard.

Here are the key steps I followed to get from the initial idea to the final dashboard:

1. Select a Topic
2. Gather the Data
3. Design Wireframes
4. Explore in Tableau
5. Format the Dashboard
6. Add Interactivity
7. Publish, Review, Refine

Select a Topic

This was probably the toughest part. The theme for the first Iron Viz Contest is Wikipedia. As you know, Wikipedia has all sorts of data on practically every topic under the sun. I was looking for topics that could make an interesting story and had a good blend of qualitative / quantitative data. Finally, I wanted to pick a topic that was close to my heart in terms of my interests, so I would stay focused throughout the project. I have always been interested in Art, and I love painting and drawing. I decided to create a dashboard dedicated to the French Impressionist Artists. Their artwork has always amazed me, and this was a great opportunity to learn more about them.

Gather the Data

Naturally, I started with the Wikipedia page on French Impressionist Artists. I looked through the profiles of all of the artists. I decided to focus on the most prominent artists in the group based on whether they had a profile picture and biographical data as well as a gallery of paintings. This narrowed the list down to 18 artists. I decided to add Manet to the list. Even though he did not consider himself as an Impressionist, he was definitely a great friend and inspiration for many of the Impressionists. I was able to use OutWit Hub to scrape some of the links and data from the pages. There was also some manual work to gather the data (thanks to my wife for helping with this as well!). I had to do some additional work to clean the city names and geocode them using Google Maps. In addition, each Wikipedia page has a View History tab that houses several metrics about the pages including Total Revisions, Total Editors, Page View Statistics, etc. I thought since this was a contest focused on Wikipedia, it would be a good idea to use these metrics as a measure of the modern-day popularity of these artists.

Design the Wireframes

The next step was to go to the drawing board and think about options for representing this wealth of data in a cohesive dashboard. I experimented with several layouts (using the old-school approach - pen and paper) and finally settled on a dashboard with three sections: Historical Background, Modern-day Popularity and Artist Profile. The historical background would be a Gantt chart showing mapping the lifetimes of each of the artists, accompanied by a map of places of birth/death. The Popularity section would include a scatter plot and a bar chart allowing users to analyze correlations between the various Wiki metrics as well as identify the most popular artists. The Artist Profile section would include links to their profile picture, selected works of art as well as their wiki page (though based on feedback from my friends and colleagues, I later replaced this with the thumbnail gallery and used the Web Page object for audio instead).

Explore in Tableau

Once I was satisfied with the design, I moved on to exploring the data further in Tableau. I was able to translate my ideas into visual charts in Tableau quickly. I had to experiment a little with how to display thumbnail images pulled directly from Wikipedia in the Web Page dashboard object. Once I created the individual sheets, I pulled them together on to a dashboard. The charts were all there, but the dashboard needed a unifying theme.

Format the Dashboard

This is where the crucial importance of formatting the dashboard came into play. I incorporated several customized design elements to match the artistic theme. For example, I changed the background color to a Sepia tone to give an aged look without detracting too much from the data. Though I typically use modern Sans Serif fonts, in this case I went with Constantia, since I wanted it to feel like I was reading an old history book. I added custom shapes in the form of brush strokes to the scatter plot and the bars. That is something I would not do on a typical business dashboard, but here I was happy to use some artistic license. Most importantly, I used the beautiful watercolor map from Stamen Design since it seemed perfect for the occasion. Since the map only included French artists, I was able to use a clipped image of France as a background image on a scatter plot. I also added some custom text on the map to give it an old Atlas feel. I had to add in an inset image of St. Thomas to account for the birthplace of Pissarro. Finally, I added a Credits tab to document the source content on Wiki pages as well as the map.

Add Interactivity

To make the dashboard interactive, I added several hover and select actions. Hovering over any of the bar charts or the scatter plot highlights the corresponding marks on the other charts. This also updates the Artist Profile section using Artist ID as the unique filtering criterion. I have always loved to read the little descriptive cards in the art museums that provide some context about the art works. I decided to incorporate a series of notes (the numbered brown buttons) that I thought would be a fun way to learn about the history of the impressionists and the perfect opportunity to add some storytelling to the dashboard. I added in audio for each of the numbered notes by uploading the audio files I created to my Spreaker account, and then hosted the HTML files with the embedded audio object on Google Drive. I noticed that some browsers blocked the auto-play of audio files. If you see this happening, you may need to press play manually in the top left corner of the dashboard. I also created a thumbnail gallery for the artists using custom shape files and linked them to higher resolution images using filter actions. There are over 300 images included in this dashboard.

Publish, Review, Refine

I am never quite satisfied with the dashboards I build, and keep tweaking it. I reviewed the dashboard with colleagues and friends and incorporated their opinions. Do not underestimate this step. Watching your users interact with the dashboard, and getting their feedback can give you great ideas you had not thought of before. Finally, there are a few instances where the Desktop version and the published Web version behaved differently. I continued to refine the dashboard until I was happy with the way things looked online.

The final version of the dashboard on Tableau Public is also available here.

I would love to hear your thoughts.

13 comments:

  1. Shine,
    I'm attempting to add audio to one of my Dashboards and used your steps:
    "I added in audio for each of the numbered notes by uploading the audio files I created to my Spreaker account, and then hosted the HTML files with the embedded audio object on Google Drive."

    When I test my HTML file with the embedded audio object code, it works as expected (plays the file from Spreaker). However, when I saved the HTML file to my Google Drive and then copy the share URL link to my Tableau, it does not work properly. Tableau displays the webpage as the code in a frame within the Google Drive window.

    Any advise?

    ReplyDelete
    Replies
    1. Hi Beth,

      What happens when you view the URL in a browser? It should play in the browser just like you expect it to play in Tableau. For example, I hosted the HTML file here: https://www.googledrive.com/host/0B7_w1k9zUQJuWTY2aUl5N3lTQzg. You can right click and view source in a browser to see if your HTML code matches the structure I used.

      Shine.

      Delete
  2. Here is the url for my html file hosted on my google drive account. https://drive.google.com/file/d/0B1F5myZaQrmVakdZMHVXbmFMYk0/view?usp=sharing
    When I click on the html file from google drive, it open the mini player and plays everything fine. But, when I follow the url above (from google drive share link), it opens the html file as code. This is my first time creating an html file, so I may have something wrong, but I did use your source code as the base for my file. It seems like Google Drive does not have a means of displaying the html code (no browser?).

    ReplyDelete
    Replies
    1. Use this link: https://googledrive.com/host/0B1F5myZaQrmVakdZMHVXbmFMYk0.
      Basically you pick the key from the sharing URL and place it in this format: https://googledrive.com/host/[insert sharing key here]

      Delete
  3. I really appreciate your assistance in this. Using your answer from above, I think I'm really close. When I test the URL from within Tableau, it opens a Google login screen. I had thought that since I selected 'link sharing on' in the Google Sharing Settings, that no Google authentication would be required. Even when I go ahead and complete the login for Google (from the Web Page window within Tableau), the html never loads...just keeps saying 'loading' with the moving EQ icon for Spreaker displaying. Is there a setting I need to change within Tableau and/or Google to be able to bypass the authentication or build it in to my file somehow?

    ReplyDelete
  4. Sharing should be set to "Public on the web". See https://support.google.com/drive/answer/2494886?hl=en for more details.

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Hi Shine,

    I have a question about your NFL viz created several months ago. I was looking at it and noticed that players that are 6'2" don't necessary fall on the same line as 74"; some fall above, and some fall below. When I checked out the workbook, I noticed that you use a "weight jiggered" and a "height jiggered" columns to get the individual dots to move slightly higher or slightly lower than a straight line. My question is how and why did you do this?

    I apologize if this isn't the best place for these kinds of questions, and thank you in advance!

    ReplyDelete
    Replies
    1. Hello, Thanks for the question! Jittering is the addition of small random variations to the data to handle overplotting (overlapping data points making it difficult to see individual data points in a chart). There are some great answers here on why this approach is used: https://www.quora.com/R-programming-language/What-is-the-significance-of-jittering-in-data-analysis. You can also read this document from Stephen Few to understand this better: https://www.perceptualedge.com/articles/visual_business_intelligence/over-plotting_in_graphs.pdf. Essentially if I did not "jitter", many of the dots would overlap and the density of the dots would not be clearly apparent since one dot or twenty overlapping dots would look the same. Hope this helps!

      Delete
  7. The you have is very useful. The sites you have referred was good. Thanks for sharing...
    selfie apps

    ReplyDelete
  8. Just wish to say your article is as surprising.

    The clarity to your post is simply great and that i could
    suppose you’re a professional on this subject.
    Well with your permission let me to clutch your feed to stay up to date with approaching post.

    Thank you a million and please continue the rewarding
    work.
    Tableau Guru
    www.sqiar.com

    ReplyDelete
  9. The clarity to your post is simply great on tableau online training in India, UK, USA, CANADA.

    TABLEAU Training in UK Canada Singapore

    TABLEAU Online Training uk

    ReplyDelete