Skip to main content
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. Track throttle map showing throttle application percentage

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