Mpavan45 commited on
Commit
120e691
·
verified ·
1 Parent(s): 999b0c9

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +35 -34
app.py CHANGED
@@ -156,6 +156,7 @@ if option == "Team Info" and team_info:
156
  # 3. Team Stats Comparison
157
  elif option == "Team Stats Comparison" and selected_teams_stats:
158
  st.title("Team Stats Comparison")
 
159
  odi_df['Format'] = 'ODI'
160
  t20_df['Format'] = 'T20'
161
  test_df['Format'] = 'Test'
@@ -176,32 +177,35 @@ elif option == "Team Stats Comparison" and selected_teams_stats:
176
  }
177
  stat_choice = st.selectbox("Select Stat to Compare", list(stat_options.keys()), format_func=lambda x: stat_options[x])
178
 
179
- st.subheader("Bar Chart")
180
- fig = px.bar(
 
181
  selected_data,
182
  x='Team',
183
  y=stat_choice,
184
  color='Team',
185
- barmode='group',
186
  title=f"{stat_options[stat_choice]} by Team in {selected_format}"
187
  )
188
- st.plotly_chart(fig, use_container_width=True)
189
 
 
190
  st.subheader("Win Percentage Pie Chart")
191
  pie_data = selected_data[['Team', '%W']]
192
  fig_pie = px.pie(pie_data, values='%W', names='Team', title='Win % Comparison')
193
  st.plotly_chart(fig_pie)
194
 
195
- st.subheader("Radar Chart (Normalized)")
196
- radar_data = selected_data[['Team', 'Won', 'Lost', 'Draw']].set_index('Team')
197
- radar_data_norm = (radar_data - radar_data.min()) / (radar_data.max() - radar_data.min())
198
- radar_data_norm.reset_index(inplace=True)
199
- fig_radar = px.line_polar(radar_data_norm, r='Won', theta='Team', line_close=True, title='Normalized Team Stats (Radar)')
200
- st.plotly_chart(fig_radar)
201
 
202
  if st.button("Show Raw Data"):
203
  st.dataframe(selected_data.reset_index(drop=True))
204
 
 
205
  elif option == "Player Stats" and selected_player:
206
  st.title(f"Player Dashboard - {selected_player}")
207
 
@@ -254,31 +258,28 @@ elif option == "Player Comparison" and player1 and player2:
254
  bat1, bowl1 = get_player_data(player1)
255
  bat2, bowl2 = get_player_data(player2)
256
 
257
- st.subheader("Batting Comparison")
258
- fig_bat = px.bar(pd.concat([bat1, bat2]), x='Format', y='Runs', color='player_name', barmode='group')
259
- st.plotly_chart(fig_bat)
260
-
261
- st.subheader("Bowling Comparison")
262
- fig_bowl = px.bar(pd.concat([bowl1, bowl2]), x='Format', y='Wickets', color='player_name', barmode='group')
263
- st.plotly_chart(fig_bowl)
264
-
265
- st.subheader("Key Stats Radar")
266
- key_stats = pd.DataFrame({
267
- 'Stat': ['Runs', 'Average', 'Strike Rate', 'Wickets', 'Economy'],
268
- player1: [
269
- bat1['Runs'].sum(), bat1['Ave'].mean(), bat1['SR'].mean(),
270
- bowl1['Wickets'].sum(), bowl1['Eco'].mean()
271
- ],
272
- player2: [
273
- bat2['Runs'].sum(), bat2['Ave'].mean(), bat2['SR'].mean(),
274
- bowl2['Wickets'].sum(), bowl2['Eco'].mean()
275
- ]
276
  })
277
-
278
- fig_radar = px.line_polar(key_stats, r=player1, theta='Stat', line_close=True, title=f'{player1} vs {player2} - Radar Chart')
279
- fig_radar.add_scatterpolar(r=key_stats[player2], theta=key_stats['Stat'], line_close=True, name=player2)
280
- st.plotly_chart(fig_radar)
281
 
282
  if st.button("Show Raw Stats"):
283
  st.dataframe(pd.concat([bat1, bowl1, bat2, bowl2]))
284
-
 
156
  # 3. Team Stats Comparison
157
  elif option == "Team Stats Comparison" and selected_teams_stats:
158
  st.title("Team Stats Comparison")
159
+
160
  odi_df['Format'] = 'ODI'
161
  t20_df['Format'] = 'T20'
162
  test_df['Format'] = 'Test'
 
177
  }
178
  stat_choice = st.selectbox("Select Stat to Compare", list(stat_options.keys()), format_func=lambda x: stat_options[x])
179
 
180
+ # Type 1: Line Chart
181
+ st.subheader("Line Chart")
182
+ fig_line = px.line(
183
  selected_data,
184
  x='Team',
185
  y=stat_choice,
186
  color='Team',
187
+ markers=True,
188
  title=f"{stat_options[stat_choice]} by Team in {selected_format}"
189
  )
190
+ st.plotly_chart(fig_line)
191
 
192
+ # Type 2: Win % Pie Chart
193
  st.subheader("Win Percentage Pie Chart")
194
  pie_data = selected_data[['Team', '%W']]
195
  fig_pie = px.pie(pie_data, values='%W', names='Team', title='Win % Comparison')
196
  st.plotly_chart(fig_pie)
197
 
198
+ # Type 3: Stacked Bar Chart (Won + Lost + Draw)
199
+ st.subheader("Stacked Bar Chart (Won, Lost, Draw)")
200
+ stack_df = selected_data[['Team', 'Won', 'Lost', 'Draw']]
201
+ stack_df = stack_df.melt(id_vars='Team', var_name='Result', value_name='Count')
202
+ fig_stack = px.bar(stack_df, x='Team', y='Count', color='Result', barmode='stack')
203
+ st.plotly_chart(fig_stack)
204
 
205
  if st.button("Show Raw Data"):
206
  st.dataframe(selected_data.reset_index(drop=True))
207
 
208
+
209
  elif option == "Player Stats" and selected_player:
210
  st.title(f"Player Dashboard - {selected_player}")
211
 
 
258
  bat1, bowl1 = get_player_data(player1)
259
  bat2, bowl2 = get_player_data(player2)
260
 
261
+ # Type 1: Batting Line Chart
262
+ st.subheader("Batting Line Chart")
263
+ bat_combined = pd.concat([bat1, bat2])
264
+ fig_bat_line = px.line(bat_combined, x='Format', y='Runs', color='player_name', markers=True)
265
+ st.plotly_chart(fig_bat_line)
266
+
267
+ # Type 2: Bowling Line Chart
268
+ st.subheader("Bowling Line Chart")
269
+ bowl_combined = pd.concat([bowl1, bowl2])
270
+ fig_bowl_line = px.line(bowl_combined, x='Format', y='Wickets', color='player_name', markers=True)
271
+ st.plotly_chart(fig_bowl_line)
272
+
273
+ # Type 3: Stacked Bar - Combined Batting + Bowling
274
+ st.subheader("Stacked Bar Chart (Runs + Wickets)")
275
+ bat_bowl_combined = pd.DataFrame({
276
+ 'player_name': [player1, player2],
277
+ 'Runs': [bat1['Runs'].sum(), bat2['Runs'].sum()],
278
+ 'Wickets': [bowl1['Wickets'].sum(), bowl2['Wickets'].sum()]
 
279
  })
280
+ bat_bowl_melted = bat_bowl_combined.melt(id_vars='player_name', var_name='Stat', value_name='Value')
281
+ fig_stacked = px.bar(bat_bowl_melted, x='player_name', y='Value', color='Stat', barmode='stack')
282
+ st.plotly_chart(fig_stacked)
 
283
 
284
  if st.button("Show Raw Stats"):
285
  st.dataframe(pd.concat([bat1, bowl1, bat2, bowl2]))