Visual Analytics I

Measuring controversy at the Eurovision Song Contest


date

Summerterm 2023

For

Visual Analytics by Kay Schroeder

Discipline

Data Visualisation D3.js Frontend

TLDR

View Project here

Concept

The Eurovision Song Contest has a long history of bringing people together, both in the arena and at home in front of the TV screen. Just as long is the history of its controversies - and it regularly includes the voting system. Since the last rule change in 2016, the winner is decided by two sets between null and douze points by a jury of industry professionals and a televote by regular people at home. In 2023, the discussion de jour centred on this separation, as both votes diverged between front runners Loreen and Käärijä. I had not been personally involved before, so I wondered how regularly that happens and centred my visualisation on it.

Data

As the base for the project, the dataset Eurovision Song Contest Data by Kaggle user ODI6S was used. To reduce the scope, I focused on continuous years with similar rules set, starting at the current year (2016 - 2023) to compare jury and televote that had happened under comparable systems.
As the original data set had not yet been updated to include the 2023 points, the set was augmented using a short Python script using Beautiful Soup.

High Res prototype, made in Adobe XD
Prototype for the Visualisation, using the ESC branding

Design and Mapping

The design is purposefully kept simple and minimal, staying close to the colours of the eurovision.com site for the 2023 season. The interface includes toggle buttons to add and remove specific years and 3 modes to sort the data by: Total Points presents an overview, mapping votes per set against the total number of votes, while Controversy makes it very clear that the people at home and the jury often have different tastes. Finally, Year presents the dots in comparison to other years for each country, giving some hints which countries (Sweden) know how to play the jury and which countries consistently rate so low the Vis needed dither on the X-axis so the nul points do not overlap.
Both votes for each act are represented by a filled or unfilled circle, while the line encodes the difference between both values. Later, I would learn that this visualisation is called a Cleveland Chart, a subtype of the lollipop plot with two groups.
When hovered over, all acts of the active year are highlighted to make comparison easier.

Cleveland Plot Chart of the Results of the ESC 2016-2023
Cleveland Plot of the 2026 Version
Bar Chart Ranking Controversy from left to right
Difference between points - Green bars represent entries that made the Top Ten in their year.
Results of the ESC plotted by country
Nul Points for Germany even in the median, what can I say

Development Delights

It needs to be said that I had no real coding experience prior to this project, and teaching us how to code was not a key objective of the course. I was operating from the general understanding that this is not a thing that I could be any good at, but learning about data visualisation and perception was just interesting enough for me to give it a chance. Within a few weeks, I taught myself the foundations of HTML, CSS and enough JavaScript to build a project that not only works, but builds on the prrof of concept sketch. The visualisation part is carried by D3.js, a library that offers full freedom to create dynamic, interactive SVGs. Additionally, Beautiful Soup was used to add the missing 2023 data that was considered essential to the success of the project.
I cannot understate how little I knew and how determined I was to make it work - I barely knew enough JavaScript to console.log my way through, and I had no idea what a pip was or that I had to install Python first back then. Still, after it was finished, it was clear that this was the thing I wanted to do.
The original code was never uploaded anywhere and subjected to the information is beautiful awards for the category Arts, Entertainment and Culture with screenshots and videos (and it made the shortlist!).