• bkornell

Breakdown: 1000 Songs You've GOT to Hear

When I see a polished viz made by a Tableau Jedi, it sometimes feels crazy intimidating. The Tableau hacks, the background design, the integrations: how did they do all that?

A year ago, I didn’t even know where to start. But I gradually started picking up various tricks from the Tableau community. This blog is a chance to pass on these tips as well to share as my thoughts as an analyst and designer. I hope this spurs more great work from the #DataFam!

I’m going to share the background behind “1000 Songs You’ve GOT to Hear”. This was created for the teaser challenge for the new #DataPlusMusic community project by Sean Miller (@HipsterVizNinja).

The Data

Sean provided a data set, but it didn't have Spotify links. I searched online and found the original Guardian article, which linked to a Google Sheet with roughly 75% of URLs. A couple hours of Googling helped me fill in the rest, including key artists like The Beatles.

Google search tip! Add "" to look for results specific to Spotify. You want a result labelled "track", not "album" or "playlist".

Unfortunately, I wasn't quite done. The Guardian article was written in 2009 and is from the United Kingdom. Many links were outdated or not playable by users in the United States. So I built a testing dashboard in the Tableau (using the embed technique below) to quickly click through and identify links that did not play.

Sounds boring, but I love music, so this was a fun trip down memory lane and a chance to discover new tunes. I'm thrilled that after cleaning the data, roughly 97% of the clips play for listeners in the United States. If you want to tackle the same data set, I invite you to download the viz and reuse the Spotify links. Just give me credit for the data cleaning!

The Viz

I normally don't like packed bubble charts: it's too hard to compare bubble sizes. But this version, which I'm going to call a "packed bubble unit chart" is an easy and a fun way to show disaggregated data (one bubble per data point).

It's just two steps:

  1. Drag a unique ID field to Detail. In this case, I used the artist-song combination.

  2. Drag the count field to Size.

Because the count is equal to one, the bubbles are sized equally and Tableau arranges them in a roughly circular pattern.

From here, you can add color, split them into Rows and Columns (as I did), and customize the tooltip.

The Image

If you're going to drop a photo in your viz, make sure you have permission to use it! Copyright law is complex, though there is this great flowchart by Curtis Newbold to help you navigate image use. Many consider the use of images on Tableau Public to be fair use under the category of limited personal use.

That said, a clean, high-res image of a specific object is hard to get. A Google search leads you to stock photos, which (legally and morally) you must pay for. This record sleeve image is a Shutterstock image that I trimmed down. Shutterstock is pricey for the casual user; their website only sells monthly subscriptions starting at $30 for 10 images. But, which hosts my website, allow users to buy individual images for $3 apiece. Bingo!

The Font (Technically "Typeface")

Figma comes with a dizzying array of free Google fonts. A frequent complaint is that you can’t preview the fonts in the default Figma interface (though there are plug-ins to cope).

I’m not a typography nerd, and I usually choose Spartan when I design a background in Figma. But I wanted something funkier here. So I Googled “Google funky font” and chose Shrikhand, the first typeface highlighted on this blog by Andrew Wilshere. The typeface was designed by Jonny Pinhorn and inspired by hand-drawn signs in Gujarat, a state in India.

The Spotify Player Embedding

This was a first for me, and it was surprisingly easy to do. There are several tutorials on the web, including this one from The Data School and a great video walk-through by Emma Whyte. It's really just a three-step process:

  1. Build a string field in your data in the form[URI]

  2. Add a Web Page object to your dashboard for the player (and default it to a song that you find interesting).

  3. Create a Dashboard Action that populates the URL into the Web Page object on a click ("select").

The webpage scales automatically to the size of the dashboard object. Most people create a skinny, horizontal box, but you can highlight the album art by using a taller, squarer box.

Unfortunately, it seems that Spotify now limits songs to 30 second samples in order to drive people to the Spotify website to hear the full song.

Discarded Concept

I had the idea to build this viz in concentric circles, with “pre-1950s” as the center and the decades radiating out. The dots would explode like a starburst from the early days of recorded music; each theme would be a colored wedge. I knew, though, that it would make the eras/themes harder to compare than the grid/bar chart layout. Plus, I had enough on my plate without adding in trigonometry. But please, someone else make this version!

Other Approaches

This was a really fun teaser for the upcoming project, and loved seeing very different approaches from other users, including Marcin Pielużek (tall unit chart), Katie Kilroy (curvy timeline), and @WhizGidget (bars by decade). Keep it up, DataFam!

104 views0 comments