2026-rff_mp/meosyam/docs/data/2/plots.py
2026-09-03 15:22:24 +00:00

53 lines
1.8 KiB
Python

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()