Codice Completo


pip install fastf1

import fastf1 as ff1
from fastf1 import plotting
from fastf1 import utils
import seaborn as sns
from matplotlib import pyplot as plt
from matplotlib.pyplot import figure
import numpy as np
import pandas as pd
import math

year1, grand_prix1, session1 = 2023, 7, 'Q'

session1 = ff1.get_session(year1, grand_prix1, session1)
session1.load()

# Informazioni primo pilota
driver_1 = 'HAM'
color_1 = '#CC0000'
label_1 = f"{driver_1} - {session1.name}"

# Informazioni secondo pilota
driver_2 = 'VER'
color_2 = '#0000CC'
label_2 = f"{driver_2} - {session1.name}"

# Riferimenti telemetrici primo pilota
laps_driver_1 = session1.laps.pick_driver(driver_1)
fastest_driver_1 = laps_driver_1.pick_fastest()
telemetry_driver_1 = fastest_driver_1.get_telemetry().add_distance()

# Riferimenti telemetrici secondo pilota
laps_driver_2 = session1.laps.pick_driver(driver_2)
fastest_driver_2 = laps_driver_2.pick_fastest()
telemetry_driver_2 = fastest_driver_2.get_telemetry().add_distance()

# Parametri generali del grafico
plot_size = [20, 10]
plt.rcParams['figure.figsize'] = plot_size
plot_title = f"{session1.event.year} {session1.event.EventName}"
fig, ax = plt.subplots(2, height_ratios=[2, 1])
subplot_bgcolor = '#FAFAFA'
plt.suptitle(plot_title)
# ------------------------

# Grafico della velocità
ax[0].plot(telemetry_driver_1['Distance'], telemetry_driver_1['Speed'], label=label_1, color=color_1)
ax[0].plot(telemetry_driver_2['Distance'], telemetry_driver_2['Speed'], label=label_2, color=color_2)
ax[0].set_facecolor(subplot_bgcolor)
ax[0].grid(which='major', color='#CCCCCC', linewidth=0.8)
ax[0].grid(which='minor', color='#DDDDDD', linestyle=':', linewidth=0.5)
ax[0].minorticks_on()
ax[0].title.set_text('Speed')
ax[0].set(xlabel=f"Distance (meters)")
ax[0].set(ylabel=f"Speed (km/h)")
# ------------------------

# Grafico dell'acceleratore
ax[1].plot(telemetry_driver_1['Distance'], telemetry_driver_1['Throttle'], label=label_1, color=color_1)
ax[1].plot(telemetry_driver_2['Distance'], telemetry_driver_2['Throttle'], label=label_2, color=color_2)
ax[1].legend(loc='lower center', bbox_to_anchor=(0.5, -0.4), ncol=2)
ax[1].set_facecolor(subplot_bgcolor)
ax[1].grid(which='major', color='#CCCCCC', linewidth=0.8)
ax[1].grid(which='minor', color='#DDDDDD', linestyle=':', linewidth=0.5)
ax[1].minorticks_on()
ax[1].title.set_text('Throttle')
ax[1].set(xlabel=f"Distance (meters)")
ax[1].set(ylabel=f"Throttle (%)")
# ------------------------

plt.show()