import pandas as pd import matplotlib.pyplot as plt import os def main(): csv_file = 'experiment_results_2-nd-exercise.csv' if not os.path.exists(csv_file): print(f"File {csv_file} not found. Run experiments first.") return df = pd.read_csv(csv_file) df_success = df[df['path_found'] == True] mazes = df_success['maze'].unique() strategies = df_success['strategy'].unique() fig, axes = plt.subplots(1, 3, figsize=(18, 6)) fig.suptitle('Сравнение алгоритмов поиска в лабиринтах', fontsize=16) for strat in strategies: data = df_success[df_success['strategy'] == strat] axes[0].plot(data['maze'], data['avg_time_ms'], marker='o', label=strat) axes[0].set_title('Среднее время (мс)') axes[0].set_xlabel('Лабиринт') axes[0].set_ylabel('Время, мс') axes[0].legend() axes[0].grid(True) for strat in strategies: data = df_success[df_success['strategy'] == strat] axes[1].plot(data['maze'], data['avg_visited'], marker='s', label=strat) axes[1].set_title('Посещённые клетки') axes[1].set_xlabel('Лабиринт') axes[1].set_ylabel('Количество') axes[1].legend() axes[1].grid(True) for strat in strategies: data = df_success[df_success['strategy'] == strat] axes[2].plot(data['maze'], data['avg_path_length'], marker='^', label=strat) axes[2].set_title('Длина пути') axes[2].set_xlabel('Лабиринт') axes[2].set_ylabel('Шагов') axes[2].legend() axes[2].grid(True) plt.tight_layout() plt.savefig('plots_2-nd-exercise.png', dpi=150) print("Графики сохранены в plots_2-nd-exercise.png") #plt.show() if __name__ == '__main__': main()