Spaces:
Sleeping
Sleeping
Update pages/2player_comparison.py
Browse files- pages/2player_comparison.py +42 -28
pages/2player_comparison.py
CHANGED
@@ -21,51 +21,65 @@ def load_data():
|
|
21 |
|
22 |
# Main App
|
23 |
def main():
|
|
|
24 |
st.title("Cricket Player Comparison Tool π")
|
25 |
-
st.write("Upload
|
26 |
|
27 |
df = load_data()
|
28 |
model, encoder = load_model_and_encoder()
|
29 |
|
30 |
-
# Upload
|
|
|
31 |
col1, col2 = st.columns(2)
|
32 |
with col1:
|
33 |
img1 = st.file_uploader("Upload Image for Player 1", type=['png', 'jpg', 'jpeg'], key='img1')
|
34 |
with col2:
|
35 |
img2 = st.file_uploader("Upload Image for Player 2", type=['png', 'jpg', 'jpeg'], key='img2')
|
36 |
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
|
|
|
|
|
|
41 |
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
|
46 |
-
|
47 |
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
|
|
|
|
|
|
|
|
|
|
55 |
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
|
|
|
|
|
|
|
|
69 |
|
70 |
if __name__ == "__main__":
|
71 |
main()
|
|
|
21 |
|
22 |
# Main App
|
23 |
def main():
|
24 |
+
st.set_page_config(layout="centered")
|
25 |
st.title("Cricket Player Comparison Tool π")
|
26 |
+
st.write("Upload images and manually select the players you want to compare.")
|
27 |
|
28 |
df = load_data()
|
29 |
model, encoder = load_model_and_encoder()
|
30 |
|
31 |
+
# Upload player images
|
32 |
+
st.subheader("Step 1: Upload Player Images")
|
33 |
col1, col2 = st.columns(2)
|
34 |
with col1:
|
35 |
img1 = st.file_uploader("Upload Image for Player 1", type=['png', 'jpg', 'jpeg'], key='img1')
|
36 |
with col2:
|
37 |
img2 = st.file_uploader("Upload Image for Player 2", type=['png', 'jpg', 'jpeg'], key='img2')
|
38 |
|
39 |
+
st.subheader("Step 2: Select Players from the Dropdown")
|
40 |
+
player_names = df['Player'].unique().tolist()
|
41 |
+
col3, col4 = st.columns(2)
|
42 |
+
with col3:
|
43 |
+
player1_name = st.selectbox("Select Player 1", player_names, key='player1')
|
44 |
+
with col4:
|
45 |
+
player2_name = st.selectbox("Select Player 2", player_names, key='player2')
|
46 |
|
47 |
+
if player1_name and player2_name and player1_name != player2_name:
|
48 |
+
player1_data = df[df['Player'] == player1_name].squeeze()
|
49 |
+
player2_data = df[df['Player'] == player2_name].squeeze()
|
50 |
|
51 |
+
st.success(f"Comparing **{player1_name}** vs **{player2_name}**")
|
52 |
|
53 |
+
# Combine data for comparison
|
54 |
+
comparison_df = pd.DataFrame([player1_data, player2_data])
|
55 |
+
comparison_df.set_index('Player', inplace=True)
|
56 |
|
57 |
+
# Show images if uploaded
|
58 |
+
col5, col6 = st.columns(2)
|
59 |
+
with col5:
|
60 |
+
if img1:
|
61 |
+
st.image(img1, caption=player1_name, use_column_width=True)
|
62 |
+
with col6:
|
63 |
+
if img2:
|
64 |
+
st.image(img2, caption=player2_name, use_column_width=True)
|
65 |
|
66 |
+
# Show key metrics
|
67 |
+
st.subheader("π Key Metrics")
|
68 |
+
st.dataframe(comparison_df.T)
|
69 |
|
70 |
+
# Plot visual comparison
|
71 |
+
st.subheader("π Stat Comparison Graph")
|
72 |
+
num_cols = comparison_df.select_dtypes(include='number').columns.tolist()
|
73 |
+
|
74 |
+
plt.figure(figsize=(10, 6))
|
75 |
+
comparison_df[num_cols].T.plot(kind='bar')
|
76 |
+
plt.title(f"{player1_name} vs {player2_name} - Performance Comparison")
|
77 |
+
plt.ylabel("Value")
|
78 |
+
plt.xticks(rotation=45)
|
79 |
+
plt.tight_layout()
|
80 |
+
st.pyplot(plt.gcf())
|
81 |
+
elif player1_name == player2_name:
|
82 |
+
st.warning("Please select two different players.")
|
83 |
|
84 |
if __name__ == "__main__":
|
85 |
main()
|