Viz For Social Good - Part 1, The Why
This blog is going to centre around a recent visualization of mine and why and how I created it.
|The visualisation this blog will cover|
Before starting this blog post I reached out to ask the community if there would be much interest in writing this blog. The response was a resounding ‘yes’ but it was also clear that not only should I provide a detailed guide on ‘how’ I built this visualization, but more importantly ‘why’ I came to my design choices.
To make this more accessible I have decided to split the blog into three separate blog posts and avoid creating one mammoth length of text that every gives up reading halfway through!
This blog is Part 1 - The Why
I will try my best to describe my thought process, design decisions and personal goals I wanted to obtain from this visualization. Apologies now if this turns into the longest blog you have ever read!
Stick with me while I afford myself a little self-reflection – it is important background for the design choice made.
My 2020 to date has been spent focusing on a few personal goals.
1. Personal development – looking to become certified in a number of areas, working through training courses and strengthen the foundation of my learning to date.
2. Community focus – spend more time helping others, feeding back to those asking for it, provide training in one-to-one zoom sessions and mentoring others.
3. Levelling-up my graphic design ability – through studying various channels and working on my Adobe Illustrator skillset.
These were personal goals that developed as the year progressed. Probably about a week before I started the build of the Viz For Social Good (VFSG) viz, I realized I had spent a lot of my free time (which tends to be late evenings only – like now as I type this) working on skills away from Tableau which led me to make the conscious decision to spend the last couple of months of the year testing myself with a Tableau focus.
I am by nature an introvert, someone that second guesses themselves constantly – “am I good enough?”, “is this really the right thing to do?”. I also, at the age of 37, switched career (just over 2 years ago) to move into data visualization. I still feel relatively new to this business and as such I question myself and my ability a lot. I am also very open as a person and do not mind admitting to my failings in public, even though I know some in the community look up to me and it is unusual in our community to show such weaknesses. – such as on Twitter when I admitted not knowing you could nest LODs, and I do not have any qualms about being as open here in this article. I hope this will prove encouraging to others that feel this rings true with them as well.
I watched Chart Chat recently where they discussed the merits of “arty” visualizations verses your more analysis focused business dashboards, and I was honoured that they used my VFSG viz as an example of the “arty” side.
I must thank Steve (Wrexler), Jeff (Shaffer), Amanda (Makulec) and Andy (Cotgreave) for being so complimentary over my work. I wasn’t expecting it but it is such a boost to hear such respected figures in our community talk so kindly about your own work. So thank you all of you.
I felt in particular that Amanda hit the nail on the head in the Chart Chat discussion, when talking about breaking away from the day-to-day business environment to produce something fun for yourself.
She said “…someone noted that Sam builds business dashboards in his day-to-day work, and so outside of work he builds something fun, that lets you stretch your technical chops”
This is exactly my mindset when it comes to my own work in Tableau Public. Yes, I could build business dashboards and show some interesting features we implement at work. I could even stylize them to make them more interesting by bringing them on trend, such as this year’s Neumorphism designs. But, that’s not what really gets me going, it would almost feel like I’m extending my work day. So I like to try things in my own time that I might not get the opportunity to do at work, and Tableau Public is my space to do that.
Amanda then continued and again hit that nail. She went on to say “…but looking at how you do those things in a fun environment, can sometimes help you find more sophisticated, more eloquent ways of creating some of those same features…”
“…kind of come part-and-parcel together, that you can go ahead learn from one and applied those same builds in another environment”
Again, this is something I have found and I am conscious of in my career. I take a lot of learnings away from my Tableau Public work, the stuff I create for fun and I apply those methods / features in my business dashboards. I find it is a really fantastic way to learn and bring through creativity into your day job, away from the deadline pressures that exist in business that might discourage experimentation.
So now you have a little understanding of my mindset when approaching this viz. I wanted to push myself technically with Tableau, after spending most of the year focusing elsewhere. I wanted find a project that I could challenge my own skill set (“can I do this?”, “am I good enough?”). I hope this didn’t come off as a ‘show-off-y’ type visualisation, because that really wasn’t where I was at. I had no idea if I could even get Tableau to do it.
That was my mindset. Creatively though, my mind was awash with inspiration, overflowing with ideas and stuff I wanted to try. Weeks ago I saw CJ Mayers produce a Circle Sankey – I love radial charts, I find them so engaging, I find they draw you in more than a linear visual; they are harder to understand, but they engage an audience to spend time. I feel the audience are willing to spend time especially if the radial has been formatted / stylised to a very good standard. Why? We all like to look at beautiful things, think of art in a gallery, or a hike to a view point or an intricate skillful sporting play – all these beautiful things we are happy to stop, take time and admire, and do so more than once.
Which is a great seg-way to some of my favourite dataviz practitioners who are always inspiring me, with their mesmerising application of visualisation. Valentina D’Efilippo, Nadieh Bremer and Federica Fragapane all inspire me, and did so for the VSFG viz. They may not use Tableau in their own work but the visuals they produce are mind-blowing and they make me want to try and emulate them.
|Credit: Valentina D’Efilippo|
What I have noticed particularly about these designers is that they give great textural form to their work through use of pattern, lines, colour and opacity. It gives their designs unbelievable depth, considering their medium is the same as ours, it is essentially digital. This inspiration resulted in my question to myself – “Can I create a similar style of depth / textural feeling to my own work, but using Tableau?” – OK there is a goal right there!
The last point I should call out around the topic of Inspiration - Is how much I spend time looking at Behance and Pinterest, collecting and categorising interesting visuals and work built in an array of different tools. I have a radial section of my Pinterest and a lot of what I see from Behance in radials I really like visually. These radial charts are all multi-faceted, multi-staged radials, that give increasing amounts of information from the centre outwards. Again, a challenge to myself, which I have stored for a long time is can I produce something similar in Tableau? I attempted it once before in my Six Nations history viz 2 years ago (my last VOTD before this one!). As good as that was, for me I knew I could do better now. The last point on the Behance-style radials is, they are ALL really hard to read! Very little effort has been devoted from the designers in helping the audience decipher what is happening. That was something in my own viz I wanted to ensure I did better - That said, it was sad though that when the viz was made VOTD, the gallery version of the viz actually cuts off the all important “How to Read” section of the viz on the right. I do wonder how many people have seen it on the Tableau Gallery and have questioned what it all means!
Before beginning the project I had all these things mentions above in my locker. The mindset I was in and a host of creative inspiration from various locations. Remember, I haven’t even found the VFSG data set yet or started designing a radial or any visual. I am purely finding and storing inspiration, with the hope to draw on that at some point.
Then came Alli Torban and her wonderfully Tessellated visualisation on the VFSG meta data.
|Credit: Alli Torban|
This viz immediately caught my eye and it brought to my attention to the VFSG topic of the month being the meta data from the participation of their project for the last 4 years. Inspired by Alli’s work I downloaded the data and started to think about what could I do with it? And that as they say was that! The data was a very small and straight-forward data set, but with it came the fantastic detail of what everyone had done on the VFSG topic to date. Wouldn’t it be great if I could somehow visualise each person and their work in a single viz!
That’s when it struck me I had found a dataset and topic that lent itself to all of what I have written about above. I didn’t know if I was technically going to be able to achieve what I was aiming for but I would certainly try.
So where did I start? I started with thinking about radials. I have blogged before about radials and have tried a few of them myself, from radial bars charts to radial sectioned jitter plots. I know I can do those, so what else is there?
Around the same time CJ Mayes had produced a ‘circular sankey’ which caught my eye. He referenced Spencer Baucke and Luke Stanke as inspirations. So I googled the term ‘circular sankey’ and found Luke’s blog post (Tutorial: Circular Sankey Diagram | Tessellation (tessellationtech.io)) on the subject.
|Credit: Luke Stanke|
Reading through the blog, there was so much of it I didn’t understand (or follow), but I caught the gist of it and that was enough to set me on my way. At this stage I did not have a masterplan on what I was going to create, I knew I wanted to try a Circular Sankey and I thought I could make it work for the data by flowing who (the VFSG volunteers) had worked on which project and visa-versa.
Reading Luke’s Circular Sankey I could see he was basing his data from superstore and was joining it to his ‘data model’ or data scaffold, densifying the data. Those who know me and my background know I know very little code, SQL, R, Python whatever, I have never had need for it. So when I saw Luke’s data model written in a coding language (I think its R) I couldn’t immediately read it. Yet, I did not let that deter me, I read on past it and tried to figure out what the data model was achieving, and by doing that I understood what needed to happen, so I could write my equivalent of it, my own way.
Now reader, if you take just one element away from this blog post to store forever, then from the build side of things it should be what follows! Pay attention.
Luke’s data model is designed to densify the data in a specific and meaningful way. Understanding this was the crux of how I was able to build such as sophisticated visual in a single sheet – only I hadn’t realised that yet at this point of the story. The data model is written to densify between 0 and 1 in increments of 0.01 and also to densify single rows with values of 2 and 3. All of this was put into a column called “T”. Effectively for each row in our original dataset we are duplicating each row 102 times (100 between 0 and 1, then 2 more for values 2 and 3). The KEY here is what Luke does next, he creates a field called ‘Separator’. Separator is essentially defining in simplified terms what each T value represents (in terms of the build). So T values between 0 and 1 (that’s 100 rows) is given the name ‘Chord’, T value 2 is called ‘Start Point’ and T value 3 is called ‘End Point’. Using this Separator field just makes it simpler to write future calculated fields. What we have now effectively done with the data model / densification and the Separator calculated field is define which T value we want to use to create the Curved Sankey line (‘Chord’) between the inner (‘Start Point’) and outer points (‘End Points’). Why this is clever is because the densification allows us to create copies of our original data set (same as if you were to Union the data set to itself) and then start to identify those data set copies to tell Tableau what to do with them. So for T values 0 to 1 we will tell Tableau to plot a curve, but for values 2 and 3 we just want singular points plotted.
This was the ‘Eureka’ moment. I now realised I could create, if I was technically good enough, the kind of visuals that I spoke about above!
The VFSG dataset was fantastically detailed to provide information on each volunteer and what they worked on - Project / Charity or Visualisation. Yet I felt I wanted to take the story that one step further and try to identify which visualisations potentially had the largest impacts by trying to give an understanding of the 'reach of a volunteers work. I did this by adding in some additional data - Tableau Public views of a each viz and also the number of followers each volunteer has on Tableau Public. Pretty basic stuff and not all encompassing, but it gave me what I was looking for - an impression of reach, which vizzes were viewed the most and which works were likely to have been seen by larger numbers of people. This is the Reach, as I calculated it, of the VFSG project today.
This additional dataset also allowed me to visualise a couple more stages to the circular sankey. The actual vizzes and their Reach (views and followers), which could be added to Projects and Volunteers. When considering what I could do with this additional data and how to visualise it, I quickly realised I wanted to make this information on the outer edge of the radial I was now aiming to create. The main reason for this was that I knew I wanted to visualise over 520 individual data points which represent the 520+ visualisations all the volunteers have created. With so many data points I had two options as I saw it, 1. visualise each individually either as a bar or a dot or 2. visualise each as a dot but in a single plane per volunteer (so each volunteer's viz would plot along a single axis coming out of the radial, one axis per voluntter and each dot plotted a distance that is represented of their reach). In the end I decided to try and plot every visualisation individually around the radial and to keep the theme of using sankey / chord lines from Luke's tutorial, I though I could continue those lines with bars coming out around the radial.
So this was the aim, to recap:
1. Use Luke's Circular Sankey as the basis of the viz
2. Plot projects at the centre and volunteers at the outer stage of the circular sankey
3. Add increase the data densification to plot from the volunteers to each viz they created
4. Then add new data to try and give an indication of reach of a viz.
5. Plot the reach of each viz outwards as bars to continue to flow of the lines.
Great so that's the plan.
Before I started I needed to gather my additional data, which was partly fun and partly not! The only way I knew how to go through the list of 520+ visualisations and find how many people had viewed them and how many followers each volunteer had, was to go to Tableau Public and open them....ONE BY ONE!!! *sigh* I spent the best part of an afternoon and evening going through every viz and opening them up and then I recorded their views and author followers in Excel, where I was keeping the original dataset. For obvious reasons this was not much fun, but if anyone knows a simplier way, please feel free to show me how! On the other hand is was actually really useful, because I then saw EVERY visualisation that had been created for VFSG and I could understand what kind of visuals had been done before, how much emphasis was placed on BIG NUMBERS (KPIs) and also storytelling. This gave me an idea for the viz, which I will explain later.
PART 2 - The build
... COMING SOON in the next few days.
Note: a lot of the 'why' concerning parts of the build will be explained in Part 2. Such as colours, text, interaction and more.
Thanks for reading