Grafico della Velocità lungo il Tracciato
Adesso che abbiamo i dati pronti per essere utilizzati, prepariamo il grafico sul quale andremo a rappresentarli.
Le cose potrebbero sembrare un po’ intricate adesso ma non preoccupatevi, andremo a spiegare linea per linea cosa abbiamo inserito.
Partiamo con l’intero blocco di codice per disegnare il grafico con la rappresentazione della velcocità lungo il tracciato.
plot_size = [20, 10]
plt.rcParams['figure.figsize'] = plot_size
plot_title = f"{session1.event.year} {session1.event.EventName} - {session1.name} - {driver_1}"fig, ax = plt.subplots()
ax.plot(telemetry_driver_1['Distance'], telemetry_driver_1['Speed'], label=label_1, color=color_1)
ax.legend(loc='lower center', bbox_to_anchor=(0.5, -0.1),)
plt.suptitle(plot_title)
plt.show()
Eseguiamo quindi questo blocco ed ecco che avremo il nostro primo grafico.
Ma vediamo, nel dettaglio, come lo abbiamo prodotto. Analizziamo le diverse linee di codice e spieghiamone il significato.
Dimensione del grafico
plot_size = [20, 10]
plt.rcParams['figure.figsize'] = plot_size
La prima linea serve per decidere la dimensione del grafico (20 di larghezza e 10 di altezza).
La seconda linea serve per far sì che il grafico utilizzi quelle dimensioni, in modo tale che vengano applicate.
Titolo del grafico
plot_title = f"{session1.event.year} {session1.event.EventName} - {session1.name} - {driver_1}"
Qui andiamo ad indicare il titolo del grafico; abbiamo utilizzato delle variabili in modo tale che, cambiando la sessione ed il pilota, il titolo del grafico rifletta automaticamente questa scelta. Se lo avessimo impostato in modo statico, avremmo dovuto modificarlo a mano ogni volta.
Lista del contenuto del grafico
fig, ax = plt.subplots()
Qui creiamo una lista ordinata (tupla) che contiene il grafico (inteso come contenitore) e la linea che rappresenterà quello che vogliamo mostrare (inteso come contenuto).
“ax” è la linea che viene mostrata, non ha indicazioni numeriche poichè al momento il nostro grafico mostrerà una sola serie di dati.
Serie dati da rappresentare
ax.plot(telemetry_driver_1['Distance'], telemetry_driver_1['Speed'], label=label_1, color=color_1)
Qui indichiamo nello specifico cosa verrà rappresentato nel grafico:
– telemetry_driver_1[‘Distance’] è l’asse orizzontale, dove rappresenteremo la distanza in metri dall’inizio del giro
– telemetry_driver_1[‘Speed’] è l’asse verticale, dove rappresenteremo la velocità in km/h per ciascun campionamento
– label_1 è il valore che utilizzeremo per la legenda, la cui variabile abbiamo dinamicamente assegnato in precedenza
– color_1 è il colore della linea, la cui variabile abbiamo assegnato staticamente in precendenza
Visualizzazione legenda
ax.legend(loc='lower center', bbox_to_anchor=(0.5, -0.1),)
Mostriamo la legenda e ne indichiamo il posizionamento:
– il parametro loc lo usiamo per scegliere posizione ed allineamento (nel nostro caso in basso e centrale)
– i valori di bbox_to_anchor li usiamo per scegliere con precisione dove collocare la legenda (in particolare il secondo valore, -0.1, serve per posizionare la legenda fuori dal grafico ed evitare che interferisca con la linea)
Visualizzazione titolo del grafico
plt.suptitle(plot_title)
Mostriamo il titolo e gli associamo il valore della variabile plot_title dinamicamente impostata in precedenza.
Visualizzazione del grafico
plt.show()
Mostriamo effettivamente il grafico, con il contenuto e le impostazioni selezionate in precedenza.
Ora abbiamo una buona base da cui partire; il grafico ha la struttura corretta ma possiamo renderlo più leggibile ed esteticamente gradevole con alcune piccole modifiche.
Nella fase successiva andremo a migliorare la visualizzazione del grafico e questo ci tornerà particolarmente utile quando, più avanti, mostreremo ulteriori serie di dati e confronteremo diversi piloti.