Plot F1 telemetry data using FastF1
Project description
F1_lap_time_telementary
This module is created to easily visualize telementary data of the fastest lap from a session. It heavily uses the great FastF1 API below - https://github.com/theOehrly/Fast-F1/tree/master
This document goes through all available API functions, if you just want a quick way to plot then review the plot_comparison function
Installation
pip install F1-lap-time-telementary
API Functions
plot_comparison
Creates a telementary for two drivers in any session
Inputs
year - Year of the race as an integer gp - The full name of the gp as a string session_type - Abbreviated session names, mapped as the following:
| session_type | Session |
|---|---|
| 'FP1' | Free Practice 1 |
| 'FP2' | Free Practice 2 |
| 'FP3' | Free Practice 3 |
| 'SQ' | Sprint Qualifying |
| 'SS' | Sprint Shootout |
| 'Q' | Qualifying |
| 'S' | Sprint |
| 'R' | Race |
drivers - A list of two drivers with their 3 letter abbreviation. E.g. ['ALO', 'STR']
Outputs
A matplotlib plot of the telementary data of two drivers
Usage
from F1_lap_time_telementary import plot_comparison
plot_comparison(
year=2025,
grand_prix='Chinese Grand Prix',
session_type='Q',
drivers=['ALO', 'STR']
)
setup_plotting
Calls fastf1.plotting.setup_mpl from FastF1 to configure the plot
Inputs
No inputs
Output
Setup matplotlib for use with fastf1 - Nothing returned from the function
Usage
from F1_lap_time_telementary import setup_plotting
setup_plotting()
get_session_data
Gets the session data from FastF1
Inputs
year - Year of the race as an integer gp - The full name of the gp as a string session_type - Abbreviated session names, mapped as the following:
| session_type | Session |
|---|---|
| 'FP1' | Free Practice 1 |
| 'FP2' | Free Practice 2 |
| 'FP3' | Free Practice 3 |
| 'SQ' | Sprint Qualifying |
| 'SS' | Sprint Shootout |
| 'Q' | Qualifying |
| 'S' | Sprint |
| 'R' | Race |
Note Sprint Shootout is for 2023 only
Outputs
session - Returns a session object
Usage
from F1_lap_time_telementary import get_session_data
year = 2025
grand_prix = 'Chinese Grand Prix'
session_type='Q'
session = get_session_data(year, grand_prix, session_type)
get_driver_data
Returns the telementary data from the driver's fastest lap
Inputs
session - A session object (which can be obtained by running get_session_data)
driver - Three letter abbreviation for a driver. E.g. 'BOT' for Bottas
Output
lap - The fastest lap set by the driver in that session car_data - telementary data from the fastest lap
Usage
from F1_lap_time_telementary import get_driver_data
session = get_session_data(2025, 'Chinese Grand Prix', 'Q')
driver = 'ALO'
lap, car_data = get_driver_data(session, driver)
get_min_max_speed
Gets the minimum and maximum speed by the driver
Inputs
car_data - Telementary Data from the car (which can be obtained by running get_driver_data)
Outputs
min_speed - Slowest speed of the car in a lap max_speed - Top speed of the car in a lap
Usage
from F1_lap_time_telementary import get_min_max_speed
min_speed, max_speed = get_min_max_speed(car_data)
plot_corners
Plots corner lines in a speed-distance plot
Inputs
ax - Axes
circuit_data - Circuit Data (Obtained by session.get_circuit_info)
car_data - Telementary Data from the car (which can be obtained by running get_driver_data)
Outputs
No output - Adds vertical dashed lines on a speed-distance plot
Usage
from F1_lap_time_telementary import get_min_max_speed
plot_corners(axs[0], circuit_data, car_data)
plot_telemetry
Plots telementry data 4 subplots -
- Speed-Distance
- Throttle-Distance
- Brake-Distance
- Gear-Distance
Inputs
axs - The axes you are plotting on
car_data - Telementary Data from the car (which can be obtained by running get_driver_data)
label - The driver's trace that is being plotted
Outputs
Nothing returned - plots a (4,1) subplot
Usage
from F1_lap_time_telementary import plot_telemetry
lap, car_data = get_driver_data('Q', 'ALO')
plot_telemetry(axs, car_data, lap)
label_axes
Labels the axes
Inputs
axs - The axes to label labels - The y axes labels for the subplots
Outputs
No output - Axes labelled
Usage
from F1_lap_time_telementary import label_axes
labels = ['Speed [km/h]', 'Throttle [%]', 'Brake [%]', 'Gear']
label_axes(axs,labels)
add_legends
Adds legend to each subplot
Inputs
axs - The axes to add legends
Outputs
No output - Each subplot has a legend
Usage
from F1_lap_time_telementary import add_legends
add_legends(axs)
set_title
Adds title to the plot
Inputs
axs - The axes to add a title title - The title you want to add
Outputs
No output - Title added to the plot
Usage
from F1_lap_time_telementary import set_title
set_title(axs, "Qualifying Comparison")
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file f1_lap_time_telementary-0.2.0.tar.gz.
File metadata
- Download URL: f1_lap_time_telementary-0.2.0.tar.gz
- Upload date:
- Size: 3.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
41ed713e52f2ab8b12d2ff32209a94e23add06d4576a23e4af0ab141b0a984be
|
|
| MD5 |
0dad5dcd73dd82ac96c88eaf63e4eb61
|
|
| BLAKE2b-256 |
51f6e058b66e6ffc20a33e202eb484d2afc0b460fa636cc52a37b73ed1bd2cef
|
File details
Details for the file f1_lap_time_telementary-0.2.0-py3-none-any.whl.
File metadata
- Download URL: f1_lap_time_telementary-0.2.0-py3-none-any.whl
- Upload date:
- Size: 4.0 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.3
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
16206facbe0c8c8de3839c8efee76f46da1354e961bdbdf3171d683739dcb4b7
|
|
| MD5 |
6ee669adcc774aca22eca87f0b5b939e
|
|
| BLAKE2b-256 |
27870487eb52acf1586b90fd503cbe8d5c2e1388551b5c0cabc97084b04eedf3
|