In the previous blog in this series, I used the FastF1 Python package to acquire some Formula 1 telemetry data. Now, I’ll be using that data to create a visualisation of a race track in Tableau.
The lap data obtained for this project is the fastest lap by Max Verstappen from the 2022 Belgian Grand Prix. Once plotted, I’ll be able to use the track map to visualise the telemetry, and dive into the data behind a lap of the Spa-Francorchamps circuit.
Key Data Requirements
The key telemetry required to plot a circuit:
- X and Y coordinates (relative position on the track)
- Timestamps for each set of coordinates
It is critical that each set of coordinates (denoting the position of the car on the circuit) is linked to a timestamp, ideally the lap time in the specific lap.
This data can then be combined with Tableau’s ability to plot a path to create a track map.
Plotting the Race Track
The first step is to place the X coordinates onto Columns, and the Y coordinates onto Rows. This initially gives a single point due to the default aggregation, but don’t worry, it will eventually take shape!

For me, the aggregation used doesn’t matter as each set of coordinates has a unique associated timestamp. As I’ll be using the timestamps to plot the path around the track, the aggregation for each point will only include a single set of coordinates. Here, I’ll leave it as the default SUM.
Next, I will add my time data to the view, and use this as a path for the data points. Currently, there is no option to add a Path in the Marks Card. This is because the chart type is set to Automatic and has defaulted to Shape. To allow me to add a Path, I must first change the chart type to Line.

This gives me an option to add a Path in the bottom right of the Marks Card!

Now I have this option, I can drag my time data to Path on the Marks Card.

It’s a simple as that! I now have the base for my track map!

Adding Telemetry Data
So, I have my track layout. What next? Firstly, I want to add some data that will add some context to a lap of the circuit.
I’m interested in the speed of the car at various corners around the track. To visualise this, I will drag my speed measure onto Color on the Marks Card. I’ll also change the colour to Red-Gold since that says “fast” to me! Additionally, I will increase the width of my “circuit” by clicking Size and adjusting from there.

Formatting my Race Track
Great! I have a track map with some interesting speed info! Now I just want to tidy up the formatting.
I would like the track to have a nice border, so it really pops and gives it a racetrack feel. To achieve that, I will duplicate the track so I can then format the two independently. The first step here is to duplicate both the X and Y coordinates on the Rows and Columns shelf. Initially, this will create four mini tracks. I can then bring these together by clicking the down arrow on the newly created X measure and selecting the Dual Axis option. I can then repeat this for the new Y measure.

My two tracks are now sitting on top of each other but, before I move on to the final stage, I need to synchronize my axes to ensure they always line up perfectly! To do this, I right click on each of the axes and ensure that Synchronize Axis is ticked. Once that’s done, I can deselect Show Headers and format the chart so that no gridlines or borders are displayed.


For the finishing touch, I simply remove my Speed measure from Color on the Marks Card for my first track (the one that is sitting furthest back in my view). I then adjust the sizes to liking, and voila! My track is finished, complete with speed data for Max Verstappen’s lap of Spa!

Resources
Want to give this a go yourself? Check out my previous blog where I detailed how I acquired this dataset! If you don’t fancy that, here’s the data used to create the chart!
If you’d like to see more like this, check out my viz on Tableau Public where I have created a dashboard detailing Lewis Hamilton’s race lap record around Suzuka!
Other Blogs in This Series
Data in Motorsport: The Best Online Resources for Formula 1 Data
Data in Motorsport: Acquiring Formula 1 Telemetry Data using Python and FastF1

