Erstellen Sie eine Heatmap mit Toren und Toren aus den Ergebnissen der B-League-Spiele
Erhalten Sie die Ergebnisse der B League-Spiele von dieser Website https://www.bleague.jp/schedule/?s=1&tab=1&year=2019&event=2&club=&setuFrom=1
Verwenden Sie Pythons Selen Die Akquisitionsergebnisse sind in pandas.DataFrame zusammengefasst
Da Basketball einen größeren Punktebereich hat als Fußball und Baseball, erstellen wir eine Verteilungstabelle, die durch 10 Punkte getrennt ist.
Fügen Sie eine Bewertungsklassenspalte hinzu, die auf diesen Artikel verweist https://qiita.com/kshigeru/items/bfa8c11d1e6487c791d3
python
labels = [ "{0} - {1}".format(i, i + 9) for i in range(40, 200, 10) ]
df['Verteilung der Heimpunktzahlen'] = pd.cut(df['Home Score'], np.arange(40, 201, 10), labels=labels)
df['Punkteverteilung'] = pd.cut(df['Auswärtspunktzahl'], np.arange(40, 201, 10), labels=labels)
Beschriften Sie 40 bis 200 Punkte mit 10 Punkten. NaN ist für Personen außerhalb des Bereichs eingestellt
Da zu erwarten ist, dass es einen Unterschied zwischen dem Heimrekord und dem Auswärtsrekord geben wird, Erstellen Sie eine Heatmap für Heimkämpfe, eine Heatmap für Auswärtsschlachten und eine Heatmap für alle Schlachten.
python
for team in teamList:
teamHomeDf = df.query('Zuhause== @team')
teamAweyDf = df.query('Weg== @team')
teamDf = pd.concat([teamHomeDf, teamAweyDf])
Die Teamliste enthält die Teamnamen aller Teams
Formatieren Sie die Daten wie gezeigt, um eine Heatmap zu erstellen
python
distributionDf = teamHomeDf.groupby(['Verteilung der Heimpunktzahlen', 'Punkteverteilung'])
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')
Stellen Sie die Daten wie in der Abbildung in allDf gezeigt ein.
Gibt eine Heatmap basierend auf den formatierten Daten aus Klicken Sie hier für eine Heatmap 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