FastF1を使うと、F1公式のライブタイミングデータをPythonから取得し、ドライバーのテレメトリーを簡単に可視化できます。ドライバーの走りを確認することで、速度やブレーキ、スロットル、ギアの使い方など、マシンやドライバーの特徴を理解できます。
さらに、複数のドライバーを比較することで、どこで差がついているのか、どのコーナーでアクセルの踏み方が異なるのかなど、より詳細な分析が可能になります。
この記事では、ドライバーのテレメトリーを表示する方法を解説し、その後にドライバーのテレメトリーを比較して違いを可視化する方法を初心者向けに紹介します。
これにより、単なるラップタイムだけでは分からない、走行の特徴や戦略の違いを直感的に理解できるようになります。

注意事項
本記事で紹介している内容について、あらかじめ以下の点をご理解ください。
- 本記事は非公式の情報をもとに作成しており、FastF1およびF1公式とは一切関係ありません。
- 掲載しているコードは動作確認を行っていますが、環境やバージョンの違いにより正常に動作しない場合があります。
- 本記事のコードの作成・補助にはAIを使用しています。内容の正確性には配慮していますが、完全な保証はできません。
- 個別の環境に関するトラブルやエラーについては、対応できない場合があります。
▶︎ FastF1の全体像や学習手順はこちらの記事でまとめています⬇️
FastF1でドライバーのテレメトリーを取得する方法
ここからは、FastF1を使って実際にドライバーのテレメトリーを取得する方法を解説します。本記事では、セッションのラップデータを読み込み、ドライバーごとのテレメトリーを表示する手順を順を追って紹介します。
掲載しているPythonコードはすべてコピペですぐに実行できるようにしているため、プログラミング初心者の方でも安心して試すことができます。
また、FastF1を初めて使う方は、事前に「FastF1の使い方【初心者チュートリアル】」の記事を確認しておくと、よりスムーズに理解できます。
まずはセッションを読み込む
FastF1では、まず対象となるレースセッションを読み込む必要があります。以下は、オーストラリアGPのセッションを読み込む基本的な例です。
import fastf1
import fastf1.plotting
import matplotlib.pyplot as plt
import os
# キャッシュ用フォルダ作成
os.makedirs('cache', exist_ok=True)
# キャッシュ機能を有効化
fastf1.Cache.enable_cache('cache')
# Matplotlib設定(時間形式対応・FastF1配色・チームカラーを使用)
fastf1.plotting.setup_mpl(mpl_timedelta_support=True, color_scheme='fastf1')このコードでは、FastF1のライブラリをインポートし、キャッシュ機能を有効にしています。また、Matplotlibの設定を行うことで、時間形式のデータやチームカラーを使ったグラフを作成できるようにしています。
続いて、対象のセッションを指定してデータを読み込みます。
# セッション読み込み(年:2026, 開催国:オーストラリア, セッション:予選)
session = fastf1.get_session(2026, "Australia", "Q")
session.load(telemetry=True)これで、予選セッションのラップデータとテレメトリーデータを取得できる状態になります。
ドライバーのベストラップのテレメトリーを表示する
次に、セッションのラップデータからドライバーのベストラップを取得し、テレメトリーを表示してみましょう。
以下のコードを実行すると、ドライバーのテレメトリーを簡単に表示できます。
# =========================
# ① ドライバーを指定
# =========================
driver = "RUS" # ラッセル
# =========================
# ② 最速ラップの取得
# =========================
lap = session.laps.pick_drivers(driver).pick_fastest()
# テレメトリーデータ取得(距離も追加)
tel = lap.get_car_data().add_distance()
# =========================
# ③ チームカラーを取得
# =========================
team_name = lap['Team'] # 例: Mercedes
color = fastf1.plotting.get_team_color(team_name, session=session)
# =========================
# ④ コーナー情報を取得
# =========================
circuit = session.get_circuit_info()
corners = circuit.corners
# =========================
# ⑤ グラフ作成
# =========================
fig, ax = plt.subplots(4, 1, figsize=(11, 10), sharex=True)
# --- Speed ---
ax[0].plot(tel['Distance'], tel['Speed'], color=color)
ax[0].set_ylabel("Speed (km/h)")
ax[0].grid(axis="y", linestyle="--", alpha=0.5)
# --- Throttle ---
ax[1].plot(tel['Distance'], tel['Throttle'], color=color)
ax[1].set_ylabel("Throttle (%)")
# --- Brake ---
ax[2].plot(tel['Distance'], tel['Brake'], color=color)
ax[2].set_ylabel("Brake")
# --- Gear ---
ax[3].plot(tel['Distance'], tel['nGear'], color=color)
ax[3].set_ylabel("Gear")
ax[3].set_xlabel("Distance (m)")
ax[3].set_ylim(0.5, 8.5)
ax[3].set_yticks(range(1, 9))
ax[3].grid(axis="y", linestyle="--", alpha=0.5)
# =========================
# ⑥ コーナー位置を表示
# =========================
for _, corner in corners.iterrows():
dist = corner['Distance']
number = corner['Number']
for a in ax:
a.axvline(dist, color='gray', linestyle=':', alpha=0.5)
ax[0].text(
dist,
ax[0].get_ylim()[1],
f"T{number}",
rotation=90,
verticalalignment='bottom',
fontsize=8,
color='gray'
)
# =========================
# ⑦ タイトル
# =========================
plt.suptitle(f"{session.event['EventName']} - {driver} Fastest Lap Telemetry")
plt.tight_layout()
plt.show()このコードを実行すると、ドライバーのスピード、アクセル、ブレーキ、ギアといったテレメトリー情報がグラフで確認できます。

テレメトリーからはさまざまな情報を読み取ることができます。例えば、2026年から導入される新レギュレーションでは、アクセル全開なのに速度が低下する「スーパークリッピング」が話題になっています。
この仕組みについて詳しく知りたい方は、こちらの記事をご覧ください⬇️
ドライバーのテレメトリーを比較する
次のコードを実行すると、2人のドライバーのテレメトリーを比較するグラフが表示されます。ここでは、メルセデスのラッセルとフェラーリのハミルトンの最速ラップを例に比較してみます。
# =========================
# ① ドライバーを指定
# =========================
driver1 = "RUS" # ラッセル
driver2 = "HAM" # ハミルトン
# =========================
# ② 最速ラップの取得
# =========================
lap1 = session.laps.pick_drivers(driver1).pick_fastest()
lap2 = session.laps.pick_drivers(driver2).pick_fastest()
# テレメトリーデータ取得(距離も追加)
tel1 = lap1.get_car_data().add_distance()
tel2 = lap2.get_car_data().add_distance()
# =========================
# ③ チームカラーを取得
# =========================
color1 = fastf1.plotting.get_team_color(lap1['Team'], session=session)
color2 = fastf1.plotting.get_team_color(lap2['Team'], session=session)
# =========================
# ④ コーナー情報を取得
# =========================
circuit = session.get_circuit_info()
corners = circuit.corners
# =========================
# ⑤ グラフ作成
# =========================
fig, ax = plt.subplots(4, 1, figsize=(11, 10), sharex=True)
# --- Speed ---
ax[0].plot(tel1['Distance'], tel1['Speed'], color=color1, label=driver1)
ax[0].plot(tel2['Distance'], tel2['Speed'], color=color2, label=driver2)
ax[0].set_ylabel("Speed (km/h)")
ax[0].grid(axis="y", linestyle="--", alpha=0.5)
ax[0].legend()
# --- Throttle ---
ax[1].plot(tel1['Distance'], tel1['Throttle'], color=color1, label=driver1)
ax[1].plot(tel2['Distance'], tel2['Throttle'], color=color2, label=driver2)
ax[1].set_ylabel("Throttle (%)")
ax[1].legend()
# --- Brake ---
ax[2].plot(tel1['Distance'], tel1['Brake'], color=color1, label=driver1)
ax[2].plot(tel2['Distance'], tel2['Brake'], color=color2, label=driver2)
ax[2].set_ylabel("Brake")
ax[2].legend()
# --- Gear ---
ax[3].plot(tel1['Distance'], tel1['nGear'], color=color1, label=driver1)
ax[3].plot(tel2['Distance'], tel2['nGear'], color=color2, label=driver2)
ax[3].set_ylabel("Gear")
ax[3].set_xlabel("Distance (m)")
ax[3].set_ylim(0.5, 8.5)
ax[3].set_yticks(range(1, 9))
ax[3].grid(axis="y", linestyle="--", alpha=0.5)
ax[3].legend()
# =========================
# ⑥ コーナー位置を表示
# =========================
for _, corner in corners.iterrows():
dist = corner['Distance']
number = corner['Number']
for a in ax:
a.axvline(dist, color='gray', linestyle=':', alpha=0.5)
ax[0].text(
dist,
ax[0].get_ylim()[1],
f"T{number}",
rotation=90,
verticalalignment='bottom',
fontsize=8,
color='gray'
)
# =========================
# ⑦ タイトル
# =========================
plt.suptitle(f"{session.event['EventName']} - {driver1} vs {driver2} Fastest Lap Telemetry")
plt.tight_layout()
plt.show()このコードを実行すると、ラッセルとハミルトンのスピード、スロットル、ブレーキ、ギアといったテレメトリー情報がグラフで比較できます。

比較してみると、ハミルトンの方がターン6とターン11でアクセルを早めに戻す(リフトアンドコースト)操作を行い、エネルギー回生(エネルギーマネジメント)を意識していることがわかります。このように、2人のドライバーのテレメトリーを並べて可視化することで、走行スタイルやマシンの特性の違いを直感的に理解することができます。
【PR】F1ゲームをよりリアルに楽しめるハンコン
FastF1でドライバーのテレメトリーを分析していると、「実際に自分でもこの走りを体感してみたい」と思うことはありませんか? そんな方には、ステアリング型コントローラー(ハンコン)を使ったレースゲーム体験がぴったりです。
👉【PR】Logicool G29 ドライビングフォース(PS5 / PS4 / PC対応)

Logicool G29は、定番のハンコンモデルで、PS5・PS4・PCに対応。
フォースフィードバック機能により、路面の感触やマシンの挙動をリアルに再現してくれます。 ブレーキングやコーナリングの感覚を手元で感じられるので、テレメトリーで見たスピードやアクセル操作を自分で体験する感覚が味わえます。
まとめ
今回は、FastF1を使ってF1のドライバーのテレメトリーを取得・可視化する方法を紹介しました。
まずは1人のドライバーの走行データを見て、スピードやアクセル、ブレーキ、ギアの使い方を確認しました。さらに、2人のドライバーを比較することで、コーナーごとのアクセル操作の違いや、エネルギーマネジメントの方法など、ラップタイムだけでは分からない走行の特徴も読み取れることがわかりました。
今回紹介した方法は応用も自在で、複数ドライバーの比較やコースごとの差の分析、さらにはタイヤコンパウンドやロングランデータとの組み合わせによる、より深い解析も可能です。
FastF1を使えば、Pythonだけで公式データに基づき、走行スタイルやマシン特性の違いを数値で理解できるようになります。少し工夫するだけで、あなたの分析の幅もぐっと広がるはずです。
次の記事では、FastF1で取得したデータを使って、ドライバーの決勝レースのラップタイムをグラフで比較する方法を解説します。F1の走りをより深く理解できるようになるので、ぜひ続けてチャレンジしてみてください。
─── 関連記事 ───
以下の記事では、2026年のF1・MotoGPの視聴方法をわかりやすくまとめています。日本の公式配信サービスに加え、VPNを使った海外配信サービスの利用ガイドも紹介しているので、モータースポーツ観戦の選択肢を広げたい方はぜひ参考にしてみてください。
▶︎ F1-DashやGP TEMPOなど、無料で使えるライブタイミングやテレメトリーデータの解析方法を紹介しています⬇️
F1公式のサブスクリプションサービス F1 TV Access では、レースのライブ視聴はできないものの、F1公式のライブタイミングやリアルタイムのテレメトリーデータを確認できます。さらに、過去のレースアーカイブにもアクセス可能です。
月額360円でどこまでの機能が使えるのか、メリットや注意点も含めて詳しくまとめています。
▶︎ F1 TV Accessでできること・できないことを解説した記事はこちら⬇️




