File size: 1,444 Bytes
1f62eb2
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
# sub process to evaluate win streak by season

# For plotting, only look at top 15 teams
dfplot = dfteams.sort_values(by = 'idx_WinStreak', ascending = False).head(15)
dfplot = dfplot[['idx_WinStreak', 'idx_WinStreak_expected', 
                'idx_HotStreak', 'ratio', 'ratio_viz']]

fig, ax = plt.subplots(figsize = (12,7))

def addlabels(x,y,z):
    for i in range(len(x)):
        plt.text(i, y[i], z[i], ha = 'center', fontsize = 12)

ax.bar(dfplot.index, height = dfplot['idx_WinStreak'], \
        label = "Win Streak", color = '#FFCB05')
temp_plot = dfplot[dfplot.idx_WinStreak == dfplot.idx_WinStreak_expected]
ax.plot(temp_plot.index, temp_plot['idx_WinStreak_expected'], \
         'v', markersize=12, c = '#00274C', label = 'Win Streak: All expected (Season RPI)')
temp_plot = dfplot[dfplot.idx_WinStreak != dfplot.idx_WinStreak_expected]
ax.plot(temp_plot.index, temp_plot['idx_WinStreak_expected'], \
         '^', markersize=12, c = 'green', label = 'Win Streak: with unexpected (Season RPI)')

# plot hot streak
ax.bar(dfplot.index, height = dfplot['idx_HotStreak'], \
        label = "Hot Streak", color = '#e10600')
addlabels(dfplot.index, dfplot.idx_HotStreak + 0.5, dfplot.ratio_viz)

plt.ylabel('Wins point generated')
plt.title(f"{iter_yr}-{iter_yr+1} Regular Season Win Streak Breakdown")
ax.legend()

plt.savefig(str_dirc + f"/report/Team_Win_Streaks/{iter_yr}.png", \
            facecolor='white', edgecolor='white')