Spaces:
Sleeping
Sleeping
Update app.py
Browse files
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 |
-
|
| 180 |
-
|
|
|
|
| 181 |
selected_data,
|
| 182 |
x='Team',
|
| 183 |
y=stat_choice,
|
| 184 |
color='Team',
|
| 185 |
-
|
| 186 |
title=f"{stat_options[stat_choice]} by Team in {selected_format}"
|
| 187 |
)
|
| 188 |
-
st.plotly_chart(
|
| 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 |
-
|
| 196 |
-
|
| 197 |
-
|
| 198 |
-
|
| 199 |
-
|
| 200 |
-
st.plotly_chart(
|
| 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 |
-
|
| 258 |
-
|
| 259 |
-
|
| 260 |
-
|
| 261 |
-
st.
|
| 262 |
-
|
| 263 |
-
|
| 264 |
-
|
| 265 |
-
|
| 266 |
-
|
| 267 |
-
|
| 268 |
-
|
| 269 |
-
|
| 270 |
-
|
| 271 |
-
|
| 272 |
-
|
| 273 |
-
|
| 274 |
-
|
| 275 |
-
]
|
| 276 |
})
|
| 277 |
-
|
| 278 |
-
|
| 279 |
-
|
| 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]))
|
|
|