50 lines
1.5 KiB
Python
50 lines
1.5 KiB
Python
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() |