見出し画像

Python×スポーツデータ(ラグビー編 キックオフからゲーム展開を考えてみる②)

こんにちは。Jackalistです。

それでは本日もスポーツデータで楽しみましょう。

前回の続きです

前回記事にした通り、今年のラグビー大学対抗戦全27試合から、キックオフの一連の流れとゲーム展開について考察したいと思います。

取得したデータをヒートマップで描画してみる

前回書いた通り、ラグビーのこんな細かいデータが落ちているはずもないので、自分で取得したデータを使います。
座標位置を力技で数字に置き換えることも出来そうですが、自分が今まで学習した範囲で考えて、シンプルにリストに変換してみました。

画像3

まず、エリアを分割してみます。

ラグビーフィールドは横半分が約50m、縦が約70mのため、横5マス(10m間隔)×縦14マス(5m間隔)で分割しました。

画像2

そこに取得した落下位置と回数を当てはめて、リストを作ってみました。

#リストで作成
list = [
[0, 0, 3, 4, 0], 
[0, 0, 0, 3, 1],
[0, 1, 2, 2, 0],
[0, 0, 3, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 0, 0, 0, 0],
[0, 1, 1, 2, 0],
[0, 0, 0, 1, 0],
[0, 0, 1, 2, 0],
]

#dataframeで表示
KickOff = pd.DataFrame(list)
KickOff​

画像3

もう少し、それっぽくするため行列名を変更してみます。

#行名追加
KickOff.index=['0_5m','5_10m','10_15m','15_20m','20_25m','25_30m','30_35m','30_35m','25_30m','20_25m','15_20m','10_15m','5_10m','0_5m']
KickOff

#列名変更
KickOff = KickOff.rename(columns={0: '0_10m',1: '10_20m',2: '20_30m',3: '30_40m',4: '40_50m'})
KickOff

画像4

ヒートマップにしない方が絶対見やすいだろうなと、、データ取得しながらうすうす感づいてましたが、、これもPythonの勉強なので、このままヒートマップにしてみます。

#ヒートマップ描画
import seaborn as sns
import matplotlib.pyplot as plt

sns.heatmap(KickOff,square=True,cmap='YlOrBr')
plt.title('KickOff Area')
#軸名削除 plt.axis("off")
plt.show()

画像5

センターラインから30m-40m(22mライン内側)、サイドラインから15m付近までのキックがほとんどのようです。

まとめ

ヒートマップで描画する目的は達成したので、次回はキックオフ後のプレー内容から、何か面白い点がないか確認してみたいと思います。

よければモチベーション維持になるのでフォロー・スキをいただけると、めちゃくちゃ嬉しいです

それでは本日もありがとうございました。

この記事が気に入ったらサポートをしてみませんか?