Throttle maps show where and how much throttle drivers apply around the circuit. This visualization reveals driving style, traction zones, and areas where drivers can push the car to its limits.
Loading the session
import tif1
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
import numpy as np
# Load session
session = tif1.get_session(2023, 'Silverstone', 'Q')
fastest_lap = session.laps.pick_fastest()
Getting throttle data
Throttle values range from 0 (no throttle) to 100 (full throttle).
# Get telemetry
telemetry = fastest_lap.get_car_data()
# Extract position and throttle
x = telemetry['X']
y = telemetry['Y']
throttle = telemetry['Throttle']
Creating the throttle map
# Prepare segments
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
# Create plot
fig, ax = plt.subplots(figsize=(12, 10))
# Color-coded by throttle
norm = plt.Normalize(0, 100)
lc = LineCollection(segments, cmap='RdYlGn', norm=norm, linewidth=4)
lc.set_array(throttle)
line = ax.add_collection(lc)
# Colorbar
cbar = plt.colorbar(line, ax=ax, label='Throttle (%)')
# Format
ax.set_aspect('equal')
ax.axis('off')
plt.suptitle(f"{session.event['EventName']} {session.event.year} - Throttle Map")
plt.tight_layout()
plt.show()
Complete example
import tif1
import matplotlib.pyplot as plt
from matplotlib.collections import LineCollection
import numpy as np
# Load session
session = tif1.get_session(2023, 'Silverstone', 'Q')
fastest_lap = session.laps.pick_fastest()
# Get telemetry
telemetry = fastest_lap.get_car_data()
x = telemetry['X']
y = telemetry['Y']
throttle = telemetry['Throttle']
# Prepare segments
points = np.array([x, y]).T.reshape(-1, 1, 2)
segments = np.concatenate([points[:-1], points[1:]], axis=1)
# Create plot
fig, ax = plt.subplots(figsize=(12, 10))
# Color-coded track
norm = plt.Normalize(0, 100)
lc = LineCollection(segments, cmap='RdYlGn', norm=norm, linewidth=4)
lc.set_array(throttle)
line = ax.add_collection(lc)
# Colorbar
cbar = plt.colorbar(line, ax=ax, label='Throttle (%)')
# Format
ax.set_aspect('equal')
ax.axis('off')
plt.suptitle(f"{session.event['EventName']} {session.event.year} - Throttle Map")
plt.tight_layout()
plt.show()
Analyzing throttle patterns
- Green sections: Full throttle on straights
- Yellow/orange: Partial throttle through fast corners
- Red sections: Minimal or no throttle in slow corners
- Gradients: Show how smoothly drivers apply throttle
High-speed corners with partial throttle indicate where drivers balance speed with traction limits.
Next steps
Last modified on March 6, 2026