patrickramos commited on
Commit
6a02cc9
·
1 Parent(s): 11cdf80

Update app

Browse files
Files changed (2) hide show
  1. data.py +21 -0
  2. gradio_function.py +29 -27
data.py CHANGED
@@ -41,6 +41,21 @@ pitch_df = pl.concat(pitch_df)
41
  player_df = pl.read_csv('player.csv')
42
 
43
  # translate pa data
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
44
  # pa_df['_des'] = pa_df['des'].str.strip()
45
  # pa_df['des'] = pa_df['des'].str.strip()
46
  # pa_df['des_more'] = pa_df['des_more'].str.strip()
@@ -84,6 +99,12 @@ pa_df = (
84
  .with_columns(
85
  pl.col('des').map_elements(translate_pa_outcome, return_dtype=str)
86
  )
 
 
 
 
 
 
87
  )
88
 
89
  # translate pitch data
 
41
  player_df = pl.read_csv('player.csv')
42
 
43
  # translate pa data
44
+
45
+ def identify_bb_type(hit_type):
46
+ if hit_type in list(range(1, 10)) + list(range(40, 49)):
47
+ return 'ground_ball'
48
+ elif hit_type in list(range(58, 67))+list(range(201, 209)):
49
+ return 'line_drive'
50
+ elif hit_type in list(range(28, 31)) + list(range(55, 58)) + list(range(107, 110)) + list(range(247, 251)):
51
+ return 'fly_ball'
52
+ elif hit_type in list(range(49, 55)) + list(range(103, 107)) + list(range(242, 248)):
53
+ return 'pop_up'
54
+ elif hit_type in [31, 32]:
55
+ return None
56
+ else:
57
+ raise Exception(f'Unexpect hit_type {hit_type}')
58
+
59
  # pa_df['_des'] = pa_df['des'].str.strip()
60
  # pa_df['des'] = pa_df['des'].str.strip()
61
  # pa_df['des_more'] = pa_df['des_more'].str.strip()
 
99
  .with_columns(
100
  pl.col('des').map_elements(translate_pa_outcome, return_dtype=str)
101
  )
102
+ .with_columns(
103
+ pl.col('bb_type').alias('hit_type').str.strip_prefix('dakyu').cast(int).alias('hit_type')
104
+ )
105
+ .with_columns(
106
+ pl.col('hit_type').map_elements(lambda hit_type: identify_bb_type(hit_type), return_dtype=str).alias('bb_type')
107
+ )
108
  )
109
 
110
  # translate pitch data
gradio_function.py CHANGED
@@ -203,7 +203,8 @@ def plot_velo_summary(df, league_df, player):
203
  legendgroup='NPB',
204
  legendrank=1,
205
  # visible='legendonly',
206
- showlegend=False,
 
207
  name='NPB',
208
  ))
209
  if count >= min_pitches:
@@ -215,7 +216,7 @@ def plot_velo_summary(df, league_df, player):
215
  meanline_visible=True,
216
  points=False,
217
  legendgroup=pitch_name,
218
- legendrank=2+(len(pitch_counts) - i),
219
  name=pitch_name
220
  ))
221
  else:
@@ -227,37 +228,38 @@ def plot_velo_summary(df, league_df, player):
227
  hovertext=False,
228
  mode="lines+text",
229
  legendgroup=pitch_name,
230
- legendrank=2+(len(pitch_counts) - i),
231
  name=pitch_name,
232
  ))
233
 
234
- fig.add_trace(go.Violin(
235
- x=league_df['release_speed'],
236
- y=[player]*len(league_df),
237
- line_color='gray',
238
- side='positive',
239
- orientation='h',
240
- meanline_visible=True,
241
- points=False,
242
- legendgroup='NPB',
243
- legendrank=1,
244
- # visible='legendonly',
245
- name='NPB',
246
- ))
247
- fig.add_trace(go.Violin(
248
- x=player_df['release_speed'],
249
- y=[player]*len(player_df),
250
- side='positive',
251
- orientation='h',
252
- meanline_visible=True,
253
- points=False,
254
- legendrank=0,
255
- name=player
256
- ))
257
 
258
  # fig.update_xaxes(title='Velocity', range=[player_df['release_speed'].dropna().min() - 2, player_df['release_speed'].dropna().max() + 2])
259
  fig.update_xaxes(title='Velocity', range=[player_df['release_speed'].min() - 2, player_df['release_speed'].max() + 2])
260
- fig.update_yaxes(range=[0, len(pitch_counts)+1-0.25], visible=False)
 
261
  fig.update_layout(
262
  violingap=0,
263
  violingroupgap=0,
 
203
  legendgroup='NPB',
204
  legendrank=1,
205
  # visible='legendonly',
206
+ # showlegend=False,
207
+ showlegend=i==0,
208
  name='NPB',
209
  ))
210
  if count >= min_pitches:
 
216
  meanline_visible=True,
217
  points=False,
218
  legendgroup=pitch_name,
219
+ legendrank=len(pitch_counts) - i, #2+(len(pitch_counts) - i),
220
  name=pitch_name
221
  ))
222
  else:
 
228
  hovertext=False,
229
  mode="lines+text",
230
  legendgroup=pitch_name,
231
+ legendrank=len(pitch_counts) - i, #2+(len(pitch_counts) - i),
232
  name=pitch_name,
233
  ))
234
 
235
+ # fig.add_trace(go.Violin(
236
+ # x=league_df['release_speed'],
237
+ # y=[player]*len(league_df),
238
+ # line_color='gray',
239
+ # side='positive',
240
+ # orientation='h',
241
+ # meanline_visible=True,
242
+ # points=False,
243
+ # legendgroup='NPB',
244
+ # legendrank=1,
245
+ # # visible='legendonly',
246
+ # name='NPB',
247
+ # ))
248
+ # fig.add_trace(go.Violin(
249
+ # x=player_df['release_speed'],
250
+ # y=[player]*len(player_df),
251
+ # side='positive',
252
+ # orientation='h',
253
+ # meanline_visible=True,
254
+ # points=False,
255
+ # legendrank=0,
256
+ # name=player
257
+ # ))
258
 
259
  # fig.update_xaxes(title='Velocity', range=[player_df['release_speed'].dropna().min() - 2, player_df['release_speed'].dropna().max() + 2])
260
  fig.update_xaxes(title='Velocity', range=[player_df['release_speed'].min() - 2, player_df['release_speed'].max() + 2])
261
+ # fig.update_yaxes(range=[0, len(pitch_counts)+1-0.25], visible=False)
262
+ fig.update_yaxes(range=[0, len(pitch_counts)-0.25], visible=False)
263
  fig.update_layout(
264
  violingap=0,
265
  violingroupgap=0,