import pandas as pd
import matplotlib.pyplot as plt


df = pd.read_csv('results.csv', encoding='utf-8-sig')

print(df)

# Получаем список лабиринтов
mazes = df['лабиринт'].unique()

#График времени
for maze in mazes:
    subset = df[df['лабиринт'] == maze]

    plt.figure(figsize=(8, 5))
    plt.bar(subset['стратегия'], subset['время_мс'])

    plt.title(f'Время выполнения — {maze}')
    plt.xlabel('Алгоритм')
    plt.ylabel('Время (мс)')

    plt.tight_layout()
    plt.savefig(f'time_{maze}.png')
    plt.close()

#График посещенных клеток
for maze in mazes:
    subset = df[df['лабиринт'] == maze]

    plt.figure(figsize=(8, 5))
    plt.bar(subset['стратегия'], subset['посещено_клеток'])

    plt.title(f'Посещённые клетки — {maze}')
    plt.xlabel('Алгоритм')
    plt.ylabel('Количество клеток')

    plt.tight_layout()
    plt.savefig(f'visited_{maze}.png')
    plt.close()

# ===== ГРАФИК ДЛИНЫ ПУТИ =====
for maze in mazes:
    subset = df[df['лабиринт'] == maze]

    plt.figure(figsize=(8, 5))
    plt.bar(subset['стратегия'], subset['длина_пути'])

    plt.title(f'Длина пути — {maze}')
    plt.xlabel('Алгоритм')
    plt.ylabel('Длина пути')

    plt.tight_layout()
    plt.savefig(f'path_{maze}.png')
    plt.close()

print('Графики успешно построены!')