How to make Football Radar charts in Tableau

If you're a fan of football you have probably come across radar charts in some shape or form. They are a very popular method of visualising multiple data points in one easy manner for quick comparison. They’ve made their way onto FIFA and football manager and are commonplace in the online analytics space. I’ve always been a big fan of these, since coming across the early iterations of Statsbomb around 2015. However, during this process of learning to make them, their shortcomings have become more obvious. When viewed on their own they can be somewhat misleading due to many things such as the positioning of metrics or the natural instinct to consider area rather than length.

First, let's start with the basics. A radar chart is a circular chart that is divided into several "spokes," each representing a different metric. The length of each spoke corresponds to the player's performance in that metric. For example, if a player has a long spoke for "passing accuracy," it means they are good at passing the ball accurately. On the other hand, a short spoke for "passing accuracy" would indicate that the player is not as skilled in this area. Despite length being the key factor, our eyes tend to look at the area of the polygon created which can be misleading.

This isn't to say that radar charts are without value, but probably need something accompanying them, hence why statsbomb now shows the distribution of each metric alongside their radars. Read about it here:

https://statsbomb.com/articles/soccer/revisiting-radars/

https://statsbomb.com/articles/soccer/understanding-statsbomb-radars/

The method:

I would recommend this blog by Ellen Blackburn for a deeper insight into the maths behind the method:

https://www.thedataschool.co.uk/ellen-blackburn/a-simple-way-to-make-a-radar-chart

And this blog by Swaminathan Nanda-Kishore https://sagnikdas1.medium.com/tableau-guide-4-football-radars-8cdac85ba1fc

To apply and prepare the data to be used with football.

Many thanks to them!

Data preparation:

Before jumping into Tableau, the structure of the data is vitally important. I imported my data from FBREF, using the download as CSV function. I did my data preparation in Alteryx but it’s easily doable in Tableau prep and excel too.

I downloaded it here https://fbref.com/en/comps/1/stats/World-Cup-Stats

The data comes in this format:

But we need it in the format below:

We need all the radar metrics in one column, with multiple rows per player.


The first thing to do is isolate the stats you want on your radar. I decided to build a forwards one to start where the key stats were:

  • xG
  • Shots
  • Touches in box
  • Passing %
  • xG assisted
  • Fouls won
  • Successful dribbles
  • High Turnovers
  • Final third regains
  • xG / shot

I would recommend filtering out all players not in the position of the radar you are choosing.

Once those have been decided, the next step is to normalise these values so they’re on the same scale. I used min max normalisation, the equation for which is as follows:

This normalises all values on the scale of 0 to 1, with the maximum being 1 and the minimum being 0. After filtering out all players with less than 90 minutes played, I used the summarise tool to append the maximum and minimum values to the dataset in order to calculate the normalised figures.

Once you’ve got your adjusted figures in Alteryx, the next step is to transpose the data columns you want, keeping the key columns you need. Mine was set up like this:


This then outputs the data in the manner we need it to be used in tableau, as shown above.

Tableau:

I would once again heavily recommend reading Ellen’s blog as linked above to get a more in depth look at the maths behind what we’re doing here.

There are four calculations we now need to create:

Calculation 1:

The angle:

Here we are telling tableau how many increments of the circle we require, and its a count distinct of the number of metrics we have.

Calculation 2:

The distance from the centre

This is the r value. This is the distance between the origin and the data point.


Calculation 3:

X axis

Calculation 4:

Y axis


Creating the radar:

The first step is to drag angle and the column with your metrics into detail, so in my case this was name.

Our angle calculation uses a running sum, so we need to specify that the angle is calculated using the name

Next drag x onto columns and y onto rows

Change the mark type to polygon:

Tableau doesn't know the order in which we want the data points to link up. So we need to click on angle and change it from detail to path

This should yield a view like this:


The next step is to fix axis dimensions. I specified -1.5 to 1.5 so the polygon doesnt take up the entire view. Fix both the x and y axis to -1.5 1.5

One addition i’m a fan of is circles at the endpoints of each metric. To do this, you right click on the Y value pill in the rows and drag it across:

You then right click on the second y value and select the dual axis. Then make sure to right click on the axis and synchronise. Change the Y value (2) mark type to circles. Finally change the colour opacity one the first Y value marks card to 50%, you then get this:


For my viz, I want to be able to compare different players easily. If I just drag player name onto colour I get the following:

Which may be pretty but is very useless. I needed a way to filter and compare two players at a time, so to do this requires some parameters. We are going to create two parameters, player 1 and player 2 with the inputs like so: I added values from the players dimension. Note, I had to go through the aliases of the players and edit many with accents in their names as they didn’t translate properly.


After this you right click each parameter on the bottom left and show parameter, it will now appear in your view.

The next step is to create a calculated field:


Then drag this onto colour on the marks card and the filter.

Make sure to uncheck null when you filter:


The final step is formatting, I would remove all grid lines and headers, and the radar background. I just created one in excel which I then saved as an image and imported it into tableau as a background image. Make sure to fit it to the same dimensions as your x and y axis:


So mine was -1.5 to 1.5.
I added a table and some stat explainers to my dashboard, and this was my final result

View it here:

https://public.tableau.com/app/profile/lucas.krokatsis/viz/Worldcupparameterisedforwardsradarchart/Dashboard1


Author:
Lucas Krokatsis
Powered by The Information Lab
1st Floor, 25 Watling Street, London, EC4M 9BR
Subscribe
to our Newsletter
Get the lastest news about The Data School and application tips
Subscribe now
© 2024 The Information Lab