import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns

sns.set_theme(style="whitegrid", palette="muted")

# File paths for golf ball data
golf_file_paths = {
    "11 inches": "golf_11.csv",
    "12 inches": "golf_12.csv",
    "13 inches": "golf_13.csv",
    "14 inches": "golf_14.csv",
    "15 inches": "golf_15.csv"
}

# File paths for lacrosse ball data
lacrosse_file_paths = {
    "18 inches": "l_18.csv",
    "19 inches": "l_19.csv",
    "20 inches": "l_20.csv",
    "21 inches": "l_21.csv",
    "22 inches": "l_22.csv"
}

# File paths for metal ball data
metal_file_paths = {
    "2 inches": "metal_2.csv",
    "4 inches": "metal_4.csv",
    "6 inches": "metal_6.csv",
    "8 inches": "metal_8.csv",
    "10 inches": "metal_10.csv"
}

def plot_position_vs_time(file_paths, ball_type):
    for label, path in file_paths.items():
        # Read CSV with no header, assuming columns: Time, Position
        df = pd.read_csv(path, header=None, names=["Time", "Position"])
        
        fig, ax = plt.subplots(figsize=(10, 6))
        
        ax.plot(df["Time"], df["Position"], label=label, marker='o', markersize=3, linewidth=2)
        
        ax.set_xlabel("Time (seconds)", fontsize=14)
        ax.set_ylabel("Position (inches)", fontsize=14)
        ax.set_title(f"{ball_type} - Position vs. Time\nInitial Height: {label}", fontsize=16, pad=15)
        
        ax.grid(True, which='both', linestyle='--', linewidth=0.5, alpha=0.7)
        
        ax.legend(fontsize=12)
        
        plt.tight_layout()
        plt.show()
        #plt.savefig()

# Plot golf ball data
plot_position_vs_time(golf_file_paths, "Golf Ball")

# Plot lacrosse ball data
plot_position_vs_time(lacrosse_file_paths, "Lacrosse Ball")

# Plot metal ball data
plot_position_vs_time(metal_file_paths, "Metal Ball")