36 lines
1.2 KiB
Python
36 lines
1.2 KiB
Python
|
|
import sys
|
||
|
|
import os
|
||
|
|
|
||
|
|
sys.path.insert(0, os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
|
||
|
|
|
||
|
|
import pandas as pd
|
||
|
|
import matplotlib.pyplot as plt
|
||
|
|
|
||
|
|
PROJECT_ROOT = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
|
||
|
|
RESULTS_PATH = os.path.join(PROJECT_ROOT, "experiments", "results.csv")
|
||
|
|
PLOTS_DIR = os.path.join(PROJECT_ROOT, "experiments", "plots")
|
||
|
|
|
||
|
|
try:
|
||
|
|
data = pd.read_csv(RESULTS_PATH)
|
||
|
|
except FileNotFoundError:
|
||
|
|
print(f"Run benchmark.py first to generate {RESULTS_PATH}")
|
||
|
|
exit(1)
|
||
|
|
|
||
|
|
os.makedirs(PLOTS_DIR, exist_ok=True)
|
||
|
|
|
||
|
|
for maze_name in data["maze"].unique():
|
||
|
|
maze_data = data[data["maze"] == maze_name]
|
||
|
|
plt.figure(figsize=(8, 5))
|
||
|
|
plt.bar(maze_data["strategy"], maze_data["time_ms"], color=['blue', 'green', 'red'])
|
||
|
|
plt.title(f"{maze_name} maze - Performance Comparison", fontsize=14)
|
||
|
|
plt.ylabel("Time (ms)", fontsize=12)
|
||
|
|
plt.xlabel("Strategy", fontsize=12)
|
||
|
|
plt.grid(axis='y', alpha=0.3)
|
||
|
|
plt.tight_layout()
|
||
|
|
|
||
|
|
plot_filename = os.path.join(PLOTS_DIR, f"{maze_name.replace('.txt', '')}.png")
|
||
|
|
plt.savefig(plot_filename, dpi=150)
|
||
|
|
plt.close()
|
||
|
|
print(f"Saved plot for {maze_name}")
|
||
|
|
|
||
|
|
print(f"All plots saved to {PLOTS_DIR}")
|