2026-rff_mp/kuznetsovTD/tusk 2/experiments/plot_results.py
2026-05-25 13:06:15 +03:00

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}")