import os import pandas as pd import matplotlib.pyplot as plt csv_file = "results/synthetic_data/raw/20260302_183202.csv" save_folder = f"results/synthetic_data/derived/{os.path.splitext(os.path.basename(csv_file))[0]}" os.makedirs(save_folder, exist_ok=True) df = pd.read_csv(csv_file) df = df[df["algorithm"] == "binary"].copy() df["relax_success_ratio"] = df["relax_success"] / df["relax_attempts"] # N vs extract_min_calls grouped = df.groupby("nodes")["extract_min_calls"].mean() plt.figure(figsize=(6,4)) plt.plot(grouped.index, grouped.values, marker='o') plt.xlabel("N (nodes)") plt.ylabel("Average extract_min_calls") plt.title("Nodes vs Extract-Min Calls") plt.grid(True) plt.tight_layout() plt.savefig(f"{save_folder}/N_vs_extract_min.png", dpi=300) plt.close() # Density vs relax_attempts grouped = df.groupby("density")["relax_attempts"].mean() plt.figure(figsize=(6,4)) plt.plot(grouped.index, grouped.values, marker='o') plt.xlabel("Density") plt.ylabel("Average relax_attempts") plt.title("Density vs Relax Attempts") plt.grid(True) plt.tight_layout() plt.savefig(f"{save_folder}/density_vs_relax_attempts.png", dpi=300) plt.close() # Sigma vs relax_success_ratio grouped = df.groupby("sigma")["relax_success_ratio"].mean() plt.figure(figsize=(6,4)) plt.plot(grouped.index, grouped.values, marker='o') plt.xlabel("Sigma (lognormal)") plt.ylabel("Relax Success Ratio") plt.title("Sigma vs Relax Success Ratio") plt.grid(True) plt.tight_layout() plt.savefig(f"{save_folder}/sigma_vs_relax_ratio.png", dpi=300) plt.close()