[2] add plot
This commit is contained in:
parent
1746a0df23
commit
7514883955
53
meosyam/docs/data/2/plots.py
Normal file
53
meosyam/docs/data/2/plots.py
Normal file
|
|
@ -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()
|
||||
Loading…
Reference in New Issue
Block a user