Art | Zielübereinstimmung | Abstimmungsart | Wahrscheinlichkeit | % |
---|---|---|---|---|
BIG | 14 | 1,0,2 | 1/4,782,969 | 0.00000020907 |
MEGA BIG | 12 | 1,2,3,4 | 1/16,777,216 | 0.0000000596 |
matplotlib
.① Rufen Sie von 2014 bis 2019 Daten von der Zeitplan- / Ergebnisseite der Jleague Data Site ab
Jahr th> | Turnier th> | Abschnitt th> | Spieltag th> | K / O-Zeit th> | Home th> | Punktzahl th> | Away th> | Stadion th> | Teilnehmer th> | Fernsehsendung th> | |
---|---|---|---|---|---|---|---|---|---|---|---|
0 | 2014 | J1 | Abschnitt 1 Tag 1 td> | 03/01 (Sa) td> | 14:04 | C Osaka td> | 0-1 | Hiroshima td> | Yanmar td> | 37079 | Scaper! / Scaper! Premium-Service / NHK-Synthese td> |
1 | 2014 | J1 | Abschnitt 1 Tag 1 td> | 03/01 (Sa) td> | 14:04 | Nagoya td> | 2-3 | Shimizu td> | Toyoda Su td> | 21657 | Scaper! / Scaper! Premium Service / NHK Nagoya / NHK Shizuoka td> |
2 | 2014 | J1 | Abschnitt 1 Tag 1 td> | 03/01 (Sa) td> | 14:05 | Torisu td> | 5-0 | Tokushima td> | Beasta td> | 14296 | Scaper! / Scaper! Premium Service / NHK Tokushima / NHK Saga td> |
3 | 2014 | J1 | Abschnitt 1 Tag 1 td> | 03/01 (Sa) td> | 14:05 | Kofu td> | 0-4 | Kashima td> | National td> | 13809 | Scaper! / Scaper! Premium Service / NHK Kofu / NHK Mito td> |
4 | 2014 | J1 | Abschnitt 1 Tag 1 td> | 03/01 (Sa) td> | 14:05 | Sendai td> | 1-2 | Niigata td> | Yoursta td> | 15852 | Scaper! / Scaper! Premium Service / NHK Sendai / NHK Niigata td> |
(2) Lesen Sie die in (1) erhaltene CSV-Datei und erstellen Sie einen "DataFrame".
col_name = ['Jahr','Turnier','Sektion','Spieltag','K/O Zeit','Zuhause','Ergebnis','Weg','Stadion','Besucher','Fernsehübertragung']
results = pd.DataFrame(index=[], columns=col_name)
for f in files:
tmp_data = pd.read_csv(f, sep=',', encoding='utf-8')
results = results.append(tmp_data, ignore_index=True, sort=False)
③ Erstellen Sie außerdem "DataFrame" separat nur für J1, J2 und J3.
#Gesamtpunktzahl der Daten nur für J1, J2 und J3
score_J1 = score_data[score_data['Turnier'] == 'J1']
idx_J1 = sorted(score_J1['Gesamtpunktzahl'].unique())
scoreJ1 = pd.DataFrame({'Gesamtpunktzahl':idx_J1, 'cnt':score_J1['Gesamtpunktzahl'].value_counts()}, index=idx_J1)
scoreJ1 = scoreJ1.reset_index().drop('index', axis=1)
score_J2 = score_data[score_data['Turnier'] == 'J2']
idx_J2 = sorted(score_J2['Gesamtpunktzahl'].unique())
scoreJ2 = pd.DataFrame({'Gesamtpunktzahl':idx_J2, 'cnt':score_J2['Gesamtpunktzahl'].value_counts()}, index=idx_J2)
scoreJ2 = scoreJ2.reset_index().drop('index', axis=1)
score_J3 = score_data[score_data['Turnier'] == 'J3']
idx_J3 = sorted(score_J3['Gesamtpunktzahl'].unique())
scoreJ3 = pd.DataFrame({'Gesamtpunktzahl':idx_J3, 'cnt':score_J3['Gesamtpunktzahl'].value_counts()}, index=idx_J3)
scoreJ3 = scoreJ3.reset_index().drop('index', axis=1)
④ Erstellen Sie 4 Diagramme mit matplotlib
.
#Grafik J1, J2, J3 und das Ganze
fig = plt.figure(figsize=(16,9),dpi=144)
fig.subplots_adjust(hspace=0.4)
#Ursprüngliche Einstellungen für den Grafikstil
plt.style.use("mystyle")
plt.rcParams["font.family"] = "IPAexGothic"
#Zum Speichern von Diagrammobjekten
axes = []
score_list = [scoreJ1['Gesamtpunktzahl'], scoreJ2['Gesamtpunktzahl'], scoreJ3['Gesamtpunktzahl'], score_all['Gesamtpunktzahl']]
cnt_list = [scoreJ1['cnt'], scoreJ2['cnt'], scoreJ3['cnt'], score_all['cnt']]
cat_list = ['J1', 'J2', 'J3', 'ALL']
#Durchlaufen Sie 4 Diagramme von J1, J2, J3, ALL
for i in range(4):
axes.append(fig.add_subplot(4,1,i+1))
axes[i].bar(score_list[i], cnt_list[i])
[axes[i].text(score_list[i][s], cnt_list[i][s]+25, str(score), size=12, color='r', ha='center') for s, score in enumerate(cnt_list[i])]
axes[i].set_xticks(np.arange(0,16,1))
axes[i].set_ylabel(cat_list[i])
axes[i].set_ylim(0,1500)
axes[i].text(15-1, 1500-200, 'n:'+str(sum(cnt_list[i])))
plt.xlabel('Gesamtpunktzahl')
txt1 = 'Ich habe versucht, die Gesamtpunktzahl des Spiels in der J League zu visualisieren.'
fig.text(.05, .9, txt1, fontsize=32, horizontalalignment="left")
txt2 = "Quelle: JLeague Data Site"
fig.text(.9, .05, txt2, fontsize=14, horizontalalignment="right")
plt.savefig('./img/score.png')
plt.show()
⑤ Fügen Sie der "Gesamtpunktzahl" die Spalte "Mega" mit 1 Punkt oder weniger, 2 Punkten, 3 Punkten, 4 Punkten oder mehr von "MEGA BIG" hinzu.
#Machen Sie eine MEGA-Score-Klassifizierung
def mega(df):
if df in (2, 3):
return df
elif df <= 1:
return 1
elif df >=4:
return 4
score_data['Mega'] = score_data['Gesamtpunktzahl'].apply(mega)
⑥ Erstellen Sie ein Diagramm der aggregierten Ergebnisse.
Recommended Posts