In January 2018 Cole Knaflic started a new, monthly, Story Telling With Data challenge for 2018. January's challenge was to create an annotated line chart.
The simplicity of the challenge immediately appealed to me and I was intrigued by the different approaches people would take to complete it.
My chosen topic
For my submission I chose a subject close to my heart; the changing fortunes of the Portsmouth Football Club, the team I have supported since a child. I visualised the final league positions of 'Pompey' between the 1992/93 and 2016/17 seasons. This was a particularly turbulent period in Pompey's history, the club had multiple owners, won the F.A. Cup and played in every division in English Football.
The challenge I faced
With so many milestones occurring during this period I knew I would be wanting to annotate a high number of season on my line chart. The challenge I faced was to ensure the reader of the visualisation could easily identify the points on the line chart that the annotations related to. I feared that the visualisation could easily become messy or busy if I took the approach of pointing each annotation to the associated point on the line chart with an arrow or connected line.
The solution
I attempted to overcome the challenges I faced by numbering each annotation and then including numbered dots on the line chart that related to each associated season. This would allow the reader to digest annotation 1 and easily identify where on the line chart annotation 1 related to. To ensure the line chart remained clean I only included dots for annotated seasons.
![](https://static.wixstatic.com/media/b84e29_77b5c1a6591a48309c8b8b43a0e30fad~mv2.png/v1/fill/w_770,h_337,al_c,q_85,enc_avif,quality_auto/b84e29_77b5c1a6591a48309c8b8b43a0e30fad~mv2.png)
How I did this in Tableau
The technique of making selected dots visible on the line chart was achieved through using a dual-axis chart in Tableau.
My data set already included a field [Commentary?] that identified if a season was to be annotated; this field included a 1 for annotated seasons and null for all other seasons. I created a new calculated field [Commentary bubble] in Tableau that would be used to plot the annotation dot:
[Commentary?]*[Football league place]
By multiplying [Football league place] by [Commentary?] the new calculated field would return a null value for any seasons not to be annotated.
![](https://static.wixstatic.com/media/b84e29_2411464cb2c44ef6bcce90241422fcd1~mv2.png/v1/fill/w_440,h_70,al_c,q_85,enc_avif,quality_auto/b84e29_2411464cb2c44ef6bcce90241422fcd1~mv2.png)
Next I created a dual-axis chart that plotted the [Football league place] measure for the line and [Commentary bubble] for the dot.
Within the marks card I visualised [Football league place] as a line and [Commentary bubble] as a circle. For the [Commentary bubble] circle I added [Commentary bubble] on text to ensure the number of the annotation was visible in the dot.
Acting on feedback
When I first published my #SWDChallenge submission I received a lot of positive feedback. People seemed to like the number annotation approach; in addition to this positive feedback I also received some constructive feedback from people on Twitter that I very much appreciated. Having taken time to digest this feedback I decided to incorporate much of it into a second version of my #SWDChallenge visualisation.
The y axis - Cole Knaflic
Cole fed back to me that it wasn't obvious in my original submission what was presented on the y axis was. Originally, I had taken the decision to hide my y axis and instead include fixed lines that represented where each of the 4 English Football Leagues sat on the visualisation. Based on Cole's feedback I amended the title of the visualisation, by adding 'League positions over the last 25 years', to try and allow readers without any knowledge of English football to understand what I was visualising
![](https://static.wixstatic.com/media/b84e29_9b89b102d7714e4d8937ec03aafbabef~mv2.png/v1/fill/w_877,h_35,al_c,q_85,enc_avif,quality_auto/b84e29_9b89b102d7714e4d8937ec03aafbabef~mv2.png)
In addition I added a brief description on the y axis, 'The 92 club English Football League hierarchy', although the values of the y axis remained hidden.
The x axis - Rodrigo Calloni, Sarah Bartlett and Ramon Martinez
In my original viz I displayed every one of the 25 seasons on the x axis with the format of year/yy (for example 1992/93). Rodrigo rightly pointed out the formatting could be simplified to make the axis cleaner; he suggested xx|yy. I created a new calculated field, [Season shortened] and utilised this for the x axis of the viz:
Replace(Right([Season],5),"–","|")
Sarah and Ramon suggested the x axis could be simplified by not rotating the text and not displaying every season as text (for example a x axis unit of 1 season). My approach to implementing this feedback was slightly different. Unfortunately I could not fit the text when rotated horizontally as opposed to vertically, however, I felt I could improve the viz by highlighting those seasons that were annotated.
To achieve this I hid the original x axis header and replaced it with a second sheet.
On the second sheet I placed season on Columns and then the [Season shortened] calculated field on the Marks card as Text. Finally I coloured the text by the [Commentary?] field. This allowed me to colour the text using 2 shades of grey, with the darker shade being used for annotated seasons.
![](https://static.wixstatic.com/media/b84e29_943a16d2e3e34c61be4c833bb8b06f90~mv2.png/v1/fill/w_933,h_52,al_c,q_85,enc_avif,quality_auto/b84e29_943a16d2e3e34c61be4c833bb8b06f90~mv2.png)
My completed annotated line chart
![](https://static.wixstatic.com/media/b84e29_0f2d943127ab405cb37fa14ae24ac1fd~mv2.png/v1/fill/w_980,h_782,al_c,q_90,usm_0.66_1.00_0.01,enc_avif,quality_auto/b84e29_0f2d943127ab405cb37fa14ae24ac1fd~mv2.png)
You can view my completed #SWDChallenge annotated line chart via my Tableau Public profile:
https://public.tableau.com/profile/simon.beaumont#!/vizhome/StoryTellingWithDataChallenge-ThechangingfortunesofPortsmouthFootballClub/StoryTellingWithDataChallenge-ThechangingfortunesofPortsmouthFootballClub
Comments