File size: 3,983 Bytes
fcb92fa
 
 
 
 
32331b8
8380a1e
32331b8
8380a1e
32331b8
 
8380a1e
 
32331b8
8380a1e
 
32331b8
 
8380a1e
 
32331b8
 
8380a1e
32331b8
 
8380a1e
32331b8
8380a1e
 
 
32331b8
 
 
 
 
 
 
 
fcb92fa
32331b8
fcb92fa
 
 
 
 
 
 
32331b8
fcb92fa
 
 
 
 
 
 
 
 
 
 
32331b8
fcb92fa
32331b8
8380a1e
32331b8
fcb92fa
 
 
 
 
 
 
 
 
 
32331b8
 
 
fcb92fa
 
32331b8
fcb92fa
8380a1e
32331b8
 
 
fcb92fa
9e50fe1
 
 
 
 
 
 
 
 
32331b8
 
 
9e50fe1
 
 
 
32331b8
 
 
 
9e50fe1
fcb92fa
32331b8
 
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
34
35
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
import streamlit as st
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

# Set page configuration
st.set_page_config(page_title="Cricket Legends: Career Insights", layout="wide")

# Light-Themed Background
page_bg = """
<style>
    body {
        background-color: #f5f7fa;
    }
    [data-testid="stAppViewContainer"] {
        background-color: #f5f7fa;
    }
    [data-testid="stSidebar"] {
        background-color: #ffffff;
        border-right: 1px solid #ddd;
    }
    h1, h2, h3, h4, h5, h6 {
        color: #333333 !important;
    }
    .stTextInput>div>div>input {
        background-color: white;
        color: black;
        border-radius: 5px;
        padding: 10px;
        border: 1px solid #ccc;
    }
</style>
"""
st.markdown(page_bg, unsafe_allow_html=True)

# App Title
st.title("🏏 Cricket Legends: Career Insights & Visualizations")

# Load data
file_path = "Final.csv"  # Ensure this file exists in your working directory
df = pd.read_csv(file_path)

# Enter Player Name
player_input = st.text_input("Enter Player Name:")

if player_input:
    selected_player = player_input.strip()
    
    if selected_player in df["Player"].values:
        player_data = df[df["Player"] == selected_player].iloc[0]

        # Pie Chart - Matches Played Across Formats
        matches = [
            player_data["Matches_Test"],
            player_data["Matches_ODI"],
            player_data["Matches_T20"],
            player_data["Matches_IPL"]
        ]
        labels = ["Test", "ODI", "T20", "IPL"]
        
        fig, ax = plt.subplots()
        ax.pie(matches, labels=labels, autopct="%1.1f%%", startangle=90, 
               colors=["#87CEEB", "#90EE90", "#FFA07A", "#9370DB"])
        ax.set_title(f"Matches Played by {selected_player}", fontsize=14)
        st.pyplot(fig)

        # Bar Chart - Runs Scored in Different Formats
        batting_runs = [
            player_data["batting_Runs_Test"],
            player_data["batting_Runs_ODI"],
            player_data["batting_Runs_T20"],
            player_data["batting_Runs_IPL"]
        ]
        fig, ax = plt.subplots()
        ax.bar(labels, batting_runs, color=["#FFD700", "#008000", "#1E90FF", "#FF4500"])
        ax.set_ylabel("Runs Scored", fontsize=12)
        ax.set_title(f"Runs Scored by {selected_player}", fontsize=14)
        st.pyplot(fig)

        # Scatter Plot - Matches vs Runs (ODIs)
        fig, ax = plt.subplots()
        sns.scatterplot(x=df["Matches_ODI"], y=df["batting_Runs_ODI"], ax=ax, color="#4682B4", edgecolor='black')
        ax.set_xlabel("Matches Played", fontsize=12)
        ax.set_ylabel("Runs Scored", fontsize=12)
        ax.set_title("Matches vs Runs in ODIs (All Players)", fontsize=14)
        st.pyplot(fig)

        # Line Chart - Batting Average Over Formats
        batting_average = [
            player_data["batting_Runs_Test"] / max(1, player_data["batting_Innings_Test"]),
            player_data["batting_Runs_ODI"] / max(1, player_data["batting_Innings_ODI"]),
            player_data["batting_Runs_T20"] / max(1, player_data["batting_Innings_T20"]),
            player_data["batting_Runs_IPL"] / max(1, player_data["batting_Innings_IPL"])
        ]
        fig, ax = plt.subplots()
        ax.plot(labels, batting_average, marker='o', linestyle='-', color='#FFA500', linewidth=2)
        ax.set_ylabel("Batting Average", fontsize=12)
        ax.set_title(f"Batting Average of {selected_player}", fontsize=14)
        st.pyplot(fig)

        # Histogram - Distribution of Runs Scored by All Players in ODIs
        fig, ax = plt.subplots()
        sns.histplot(df["batting_Runs_ODI"], bins=20, kde=True, color='#3CB371', ax=ax)
        ax.set_xlabel("Runs Scored", fontsize=12)
        ax.set_ylabel("Frequency", fontsize=12)
        ax.set_title("Distribution of Runs Scored in ODIs (All Players)", fontsize=14)
        st.pyplot(fig)

    else:
        st.error("🚨 Player not found! Please enter a valid player name.")