이것저것

르끌레르의 모나코 그링프리 간단한 시각화

sam_j_s 2024. 7. 13. 01:01
728x90
반응형

주제

F1의 주행 데이터를 가져올 수 있는 Fastf1을 이용해서 홈 그랑프리인 모나코 그랑프리에서 우승을 한 모나코 왕자님 샤를 르끌레르의 주행 데이터를 가지고 간단한 시각화를 해볼 것입니다. 
 

시각화

필요한 패키지 임포트

import fastf1
import matplotlib.pyplot as plt
import pandas as pd

데이터 가져오기

# 캐시 활성화
fastf1.Cache.enable_cache('cache')  # 'cache' 폴더에 데이터 저장

# 2024 모나코 그랑프리 데이터 로드
race = fastf1.get_session(2024, 'Monaco', 'R')
race.load()

F1은 매주 주말마다 엄청난 양의 데이터가 생성되고 이를 가져오는 데 시간이 올래 걸립니다. Fastf1은 데이터를 특정 폴더에 저장하는 캐싱 기능을 제공합니다. cache라는 폴더를 만들어준 후 그 데이터들을 저장 후 빠르게 가져올 수 있도록 해줍니다.
 
모나코 그랑프리에 해당하는 데이터들을 가져와주겠습니다. 처음에 cache에다 저장을 해 두면 다음에는 더 빠른 속도로 데이터를 가져올 수 있습니다.

간단한 시각화

# 샤를 르끌레르의 데이터 필터링
lec_laps = race.laps.pick_driver('LEC')

# 0번 랩 제거
lec_laps = lec_laps[lec_laps['LapNumber'] != 1]

# 샤를 르끌레르의 랩 타임 데이터 추출
lap_times = lec_laps['LapTime'].dt.total_seconds()

# 시각화
plt.figure(figsize=(12, 6))
plt.plot(lap_times, marker='o', linestyle='-', color='b', label='Lap Time')
plt.axhline(y=lap_times.mean(), color='r', linestyle='--', label='Mean Lap Time')
plt.title('Charles Leclerc Lap Times (2024 Monaco GP)')
plt.xlabel('Lap Number')
plt.ylabel('Lap Time (seconds)')
plt.legend()
plt.grid(True)
plt.show()

모나코 그랑프리에서 샤를 르끌레르의 랩 타임을 가져와보았습니다. 랩 타임 분포를 보면 몇몇 랩을 제외하고는 대부분 평균 근처에 집중되어 있는 것을 알 수 있습니다. 

# 샤를 르끌레르의 데이터 필터링
lec_laps = race.laps.pick_driver('LEC')

# 샤를 르끌레르의 타이어 전략 분석
lec_stints = lec_laps[['Stint', 'Compound']].drop_duplicates().copy()
lec_stints['Duration'] = lec_laps.groupby('Stint')['LapNumber'].count().values

# 시각화
plt.figure(figsize=(10, 6))
colors = {'SOFT': 'red', 'MEDIUM': 'yellow', 'HARD': 'white', 'INTERMEDIATE': 'green', 'WET': 'blue'}
plt.bar(lec_stints['Stint'], lec_stints['Duration'], color=[colors[compound] for compound in lec_stints['Compound']])
plt.title('Charles Leclerc Tire Strategy (2024 Monaco GP)')
plt.xlabel('Stint')
plt.ylabel('Number of Laps')
plt.grid(True)
plt.show()

샤를 르끌레르가 어떤 타이어로 얼만큼 달렸나 살펴보았습니다. 우선 소프트 타이어를 빨간색, 미디엄 타이어를 노란색, 하드타이어를 하얀색으로 주었습니다. 이번 모나코 그랑프리에서는 첫 랩에 4명이 리타이어 하는 사고가 발생하였습니다. 처음에는 미디엄 타이어로 시작했지만 바로 하드 타이어로 갈고 나와서 완주를 해 하얀색이 대부분인 것을 알 수 있습니다.

# 섹터 타임 데이터 가져오기
sector_times = lec_laps[['Sector1Time', 'Sector2Time', 'Sector3Time']].apply(lambda x: x.dt.total_seconds())

# 섹터 타임 평균 계산
mean_sector_times = sector_times.mean()

# 시각화
plt.figure(figsize=(10, 6))
plt.bar(mean_sector_times.index, mean_sector_times, color=['blue', 'orange', 'green'])
plt.title('Charles Leclerc Average Sector Times (2024 Monaco GP)')
plt.xlabel('Sector')
plt.ylabel('Average Time (seconds)')
plt.grid(True)
plt.show()

\

르끌레르의 각 섹터별 퍼포먼스도 살펴보았습니다. 첫 번째 섹터에서 가장 빠른 타임을 기록했고 3번째 2번째 섹터 순서인 것을 볼 수 있습니다.
 

반응형

'이것저것' 카테고리의 다른 글

Formula 1 2024년 영국 GP 타이어 성능 분석  (4) 2024.07.15

'이것저것'의 다른글

  • 현재글 르끌레르의 모나코 그링프리 간단한 시각화

관련글