Face the music


My new IronViz submission


The reason why I repeatedly participe to the IronViz is to face the music, to compete against myself and see what I can come with, on a subject that is far away my confort zone. I am always learning new skills, soft or hard skills.





First obsession : vinyles


When I started this new challenge and found a cool data set on 100 Bilboard charts ( thank you @HipsterVizNinja for publishing the original dataset online in data world), I have no idea how the viz will look like. I just analyzed the data and passed the first two days cleaning and prepping it with prep. But on day 3, I started sketching and that is my first draft.



Not very promising, right? but I get obsessed with the idea to reproduce Vinyles. And I wanted to draw them, not only put an image on top.

So I use some trigonometry to draw the vinyle




Depending of the vinyle the formula changes slightly to be able to have the first songs of the outter part on the vinyle.

The formula for the axis :

x= COS(2*pi()*MIN([Index])/49)*(20+[ranking best position])
y=sin(2*pi()*MIN([Index])/49)*(20+[ranking best position])

The index is a value on the dataset that allows me to densificate the data and use it to create a circle for every song. The 20+ on the formula creates a small round on the middle to make it looks like even more like a vinyle.

To intensificate the look and feel I create a field to color the vinyle depending of the position of the song.





I also wanted to add the top 3 songs on the pink sticker and not add a floating worksheet on top. I managed to do it after a lot of try and errors using a dual axis and using again the index field to center the label. Now when the year change the label is still perfectly centered.




Let's talk about... Actions

As I build my viz I wanted to make it interactive, so I use all the tools at my disposal including actions.
My viz uses all the 5 types of dashboards actions. When Set actions were released in Tableau some months ago, I got really excited and I used it in every viz since then; but I never found a case to use parameter actions.. at least until this music viz :)







Set Actions

The set action in the viz allows the user to obtain yearly detail when clicking on a decade. The viz below shows the number of love songs by decade split by month, but when clicking on a decade let's say 90s...

 

 ... the viz displays the years of the selected decade.





To do it :

1- create a set called "set decade"

2- create a field called "set decade to year", displaying the year when one decade has been selected.

if [set decade] then STR([year of week]) else " " END

3- create a filter to show only the decade selected or all the decades

if [set decade? ] then "show"
ELSEIF [nb year per decade overall]=1 then "show"
else "hide"
END




4- the last step is to create the dashboard action by selecting the sheet that will control the set and the decade set.






Parameter Actions

For one part of my viz, I wanted to be able to select a certain number of comes back and display the list of the songs.

By clicking on the top left view let's say on 4 comes back, the right view will display the songs that have at least come back 4 times, sorted by the longest come back ( this duration is calculated between the first and last time a song has come back)



The top left view displays the distribution of the songs by number of come backs. The selected come backs number appears in a lighter blue.
The field "Instance?" controling the color is calculated as follows MAX([Instance])>=[instance to considered], with [instance to considered] being the parameter.





 This field "Instance?" is also used on the second view as a filter to remove the songs having less than the number of come back selected.



The last step is to create a parameter action, by selecting the sheet responsible for controling the parameter ( top left view) and the field (here instance) feeding the parameter value.




Twist it !

To increase the interactivity in the viz, I wanted to add a fun twist by creating a music quiz .
So I added a show/hide sheet for the users to play or not with it.








Each question is controlled by a parameter to check the answer.
Depending of the answer the field displays a nice message "well done" or an encouraging one "Try again"

if [#1]="1" then "♬ well done ♬"
elseif [#1]="0" then ""
ELSE ":( try again" END


When the answer is correct a link appears so it show a nice video...






I hope you had fun playing with the viz, as much as I had doing it.

Annabelle