Créez une carte thermique des buts et des buts à partir des résultats des matchs de la ligue B
Obtenez les résultats des matchs de la Ligue B sur ce site https://www.bleague.jp/schedule/?s=1&tab=1&year=2019&event=2&club=&setuFrom=1
Utilisez le sélénium de Python Les résultats de l'acquisition sont résumés en pandas.
Étant donné que le basket-ball a un éventail de points plus large que le football et le baseball, nous allons créer une table de distribution séparée par 10 points.
Ajouter une colonne de classe de notation faisant référence à cet article https://qiita.com/kshigeru/items/bfa8c11d1e6487c791d3
python
labels = [ "{0} - {1}".format(i, i + 9) for i in range(40, 200, 10) ]
df['Distribution des scores à domicile'] = pd.cut(df['Score à domicile'], np.arange(40, 201, 10), labels=labels)
df['Distribution des scores à l'extérieur'] = pd.cut(df['Score à l'extérieur'], np.arange(40, 201, 10), labels=labels)
Étiquetez 40 à 200 points avec 10 points. NaN est défini pour ceux en dehors de la plage
Comme on peut s'attendre à ce qu'il y ait une différence entre le record à domicile et le record à l'extérieur, Créez une carte de chaleur pour les batailles à domicile, une carte de chaleur pour les batailles à l'extérieur et une carte de chaleur pour toutes les batailles.
python
for team in teamList:
teamHomeDf = df.query('domicile== @team')
teamAweyDf = df.query('Une façon== @team')
teamDf = pd.concat([teamHomeDf, teamAweyDf])
La teamList contient les noms des équipes de toutes les équipes
Formatez les données comme indiqué pour créer une carte thermique
python
distributionDf = teamHomeDf.groupby(['Distribution des scores à domicile', 'Distribution des scores à l'extérieur'])
distributionDf = distributionDf.size().unstack()
distributionDf = distributionDf.fillna(0)
cols = distributionDf.columns
indexs = distributionDf.index
for index in indexs:
for col in cols:
allDf.at[index, col] = round(distributionDf.at[index, col] / total, 2)
plt.figure(figsize=(8, 8))
sns.heatmap(allDf, annot = True, cmap = color, vmin = 0, square = True)
if not os.path.exists(path):
os.makedirs(path)
plt.savefig(path + '/' + fileNm)
plt.close('all')
Définissez les données comme indiqué dans la figure dans allDf.
Génère une carte thermique basée sur les données formatées Cliquez ici pour la carte thermique https://note.nkmk.me/python-seaborn-heatmap/ https://matplotlib.org/tutorials/colors/colormaps.html
python
plt.figure(figsize=(8, 8))
sns.heatmap(allDf, annot = True, cmap = 'hot', vmin = 0, square = True)
if not os.path.exists(path):
os.makedirs(path)
plt.savefig(path + '/' + fileNm)
plt.close('all')
Recommended Posts