diff --git a/meosyam/docs/data/2/plots.py b/meosyam/docs/data/2/plots.py new file mode 100644 index 0000000..53c2748 --- /dev/null +++ b/meosyam/docs/data/2/plots.py @@ -0,0 +1,53 @@ +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() \ No newline at end of file