Back to Data Visualisation

Visualising the History of a Club

10/02/2020

A couple of years back I joined a Toastmasters club. Last year we celebrated our club's 20th anniversary, so I decided to pull data on the club from the club website and give a presentation on some statistics and visualisations of the club's history through its data.

I recently decided to tidy up my visualisations and make them into a blog post. There are a lot of aspects of an organisation which you might want to get insights on, and it can often be difficult to visually convey these aspects. In this post we will explore visualisations of

To start off, let's load up the libraries and data we'll need, and look at the dtypes of the data columns. I won't show any of the actual data here for privacy reasons.

The first table gives all the members who have been a part of the club, along with when they joined and when they quit. Well, not all the members. The online system seems to have been phased in after 2000, so the early data is a bit patchy.

The second table gives all the club's "officers" and when they were in office. Officers have such grandiose titles as "president", "sergeant at arms" (preparer of snacks), and "vice president public relations" (facebook page updater).

At Toastmasters you also get "education awards" as you move through the curriculum. The last table gives details about these awards.

Now that we've loaded the data, let's get stuck into some visualisation.

Membership Begin and End Dates

The first thing I want to look at is the number of members entering or leaving the club each year. Were there any mass exoduses? Were there any years where the club was unusually good at recruitment? Seaborn's jointplot seems like the ideal tool for this.

Notice how the $x=y$ line is clearly visible. Points can't go below this line because you can't begin your membership before you end it. The greater the verticle height from the $x=y$ line, the longer that person was a member. It looks like the longest membership lasted from 2005 to 2013! The biggest exodus occurred in 2010, which probably prompted a big recruitment drive in 2011 where we see the largest uptake of new members.

Tenure

How long do members stick with the club? Here's a histogram of member "tenure":

Each bin is one semester long. So most members drop out after only one semester, and after 3 semester's almost everyone is done, although there have been a few hardcore members who've stuck around for many years. The longest membership was 7 years; no doube the 2005 to 2012 member we noted from the previous plot.

Education Awards

Let's look at what education awards were obtained in each year. This data isn't all that interesting, so we won't do anything with the educational awards after this.

The only thing to note here is that the curriculum changed by 2019, so a different set of education awards were available.

Total Membership

How many members has Varsity Toastmasters had over its lifetime? How many presidents? How many officers? Let's take a look at a cumulative histogram.

Several things to note:

Officer Transitions

Let's now look at how members tend to move through the ranks of officer positions. We'll do this by creating calculating a transition matrix for officer roles.

Observations:

Individual Member Plots

Now we get to the interesting bit. I wanted to make a plot where we can see information about each member individually. This turned out to be surprisingly hard: there are so many members that to visually summarise what's going on with all of them normally results in the graph looking chaotic and ugly. But after several hours of trial-and-error, I eventually hit upon a visualisation that I absolutely love.

Here's what's going on in this plot. Each line represents a member, spanning from when the member joins to when they leave. The lines are all stacked on top of each other, so that you can tell how many members there are by looking at how high the stack is at a given time. Peak membership occurred in 2010, at which point it briefly exceeded 40 people. Membership has only been as low as it currently is twice before: in 2015, and when the club was founded in 2001.

The members are sorted vertically so that the member who will leave the soonest is at the top. This is why you can see several members snaking their way from the bottom of the pile up to the top, at which point they can evaporate away. I didn't sort them this way because it was particularly informative, but because of all the different ways of sorting I tried out, this one looked hands down the best. Members tend to come and go in waves, and with this sorting the membership plot actually looks like a bank of waves!

What about the colours? I wanted to be able to quickly discern which members had been around the longest at any given time. At first I just tried making the longer lines thicker, but then you couldn't tell if a line was thick because it has a long future or a long past. Ideally a member's line would become more distinctive the longer the member had been around. Making each line grow in thickness from left to right would have achieved this, but this would be a pain to do with Seaborn.

Eventually it occurred to me to set a member's colour according to when they joined the club. That member then becomes increasingly distinctive as the newer members gradually change colour around them. And as an added bonus, you can tell at a glance when a member joined, and which members are from the same "generation".

As I said before, it took many hours of iterating to arrive at the above plot. Some of these iterations were too good to throw out, so before moving on, let's look at... the fire plot:

and this plot, which somehow reminds me both of Escher and of that famous Japanese print of a wave

This last plot is interesting because it's looks so three dimensional.

Individual Officer Timelines

I wanted to do a similar thing to above, but include information about who was holding officer roles. Again, this was really hard to do without making it ugly, but after hours of trial and error I finally came across something that looks nice.

This plot has members sorted so that the oldest member is at the bottom. We can see that presidents tend to be among the oldest members, whereas not-so important roles like secretary tend to be medium-seniority members. The times have been discretized to prevent too many ugly steep gradients. An unfortunate artefact of this is that there can often be several people with the same officer role at the same time.

Another attempt I had at doing this visualisation looked like this:

This plot has the line start and end x-coordinates rounded to the nearest quarter-year, which gives it this really neat pattern. It looks like a piece of Mondrian-style abstract art.

Another Individual Member Plot

Here's another way I thought of visualising each individual member.

Here each member is a vertical line, with colours representing officer roles. This plot has a number of nice properties:

Conclusion

Back in the introduction I said that we'd be trying to plot the following aspects of Varsity Toastmaster's club history:

  1. People entering or leaving the organisation over time
  2. The length of people's stay within the organisaiton
  3. Current membership of the organisation
  4. Cumulative membership of the organisation
  5. The succession of roles people take on within the organisation

We ended up with many plots, each of which conveyed a different mix of these aspects. This table summarises which information is conveyed by each plot, and whether it is conveyed in aggregate (i.e., aggregated across all members) or individually (i.e., you can read off information about individual members), as well as whether the information is explicit (you can read the value directly off the plot) or implicit (you can infer the value from other values you can read off the plot).

Plot Entering and leaving Member stay length Current Membership Cumulative Membership Role Succession
Begin and end membership jointplot Aggregate - - - -
Member tenure displot - Aggregate - - -
Cumulative membership plot Implicit - Implicit Yes -
Transition matrix - - - - Aggregate
Individual member plots Individual Individual Yes - -
Individual officer timelines Individual Individual Yes - Individual and Aggregate
Another individual member plot Individual and Aggregate Individual and Aggregate Yes - Individual

Based on this, I'd say that the last plot is most informative, and if you combine it with the cumulative membership plot then you can convey most of the data available fairly well. But if you're going for visual appeal, the first individual member plot is definitely the way to go.

If I ever return to this project, I've got an idea about how to extend these visualiations. Because we're dealing with temporal data, an animation or interactive slider would make sense (like they have on Our World in Data). For example, imagine a circle representing each role within the club - member, president, treasurer, etc - and dots representing each member. When a new member joins, they enter from the left of the screen, then move between the various circles as they take on different roles (perhaps growing larger the longer they stay), and then exit to the right of the screen. And if each dot leaves a trail you can get a sense of the transition rates between different roles.