Добавлены графики
This commit is contained in:
parent
06a8a01c7f
commit
3b072cee1c
BIN
YanyaevAA/task2/docs/data/maze_graphics.png
Normal file
BIN
YanyaevAA/task2/docs/data/maze_graphics.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 176 KiB |
|
|
@ -1,16 +1,16 @@
|
|||
лабиринт,стратегия,время_мс,посещено_клеток,длина_пути
|
||||
10x10.txt,BFS,0.02810000005410984,30.0,29.0
|
||||
10x10.txt,DFS,0.038610000046901405,43.0,29.0
|
||||
10x10.txt,AStar,0.03273000111221336,30.0,29.0
|
||||
50x50.txt,BFS,0.7084800003212877,799.0,316.0
|
||||
50x50.txt,DFS,0.48563999953330494,562.0,350.0
|
||||
50x50.txt,AStar,0.6310500000836328,539.0,316.0
|
||||
100x100.txt,BFS,3.024820000428008,3576.0,196.0
|
||||
100x100.txt,DFS,0.44655999954557046,595.0,364.0
|
||||
100x100.txt,AStar,0.5645899997034576,522.0,196.0
|
||||
empty.txt,BFS,0.2849799988325685,324.0,35.0
|
||||
empty.txt,DFS,0.1592799999343697,324.0,171.0
|
||||
empty.txt,AStar,0.4022000000986736,324.0,35.0
|
||||
without_exit.txt,BFS,0.041259999125031754,48.0,0.0
|
||||
without_exit.txt,DFS,0.040809998608892784,48.0,0.0
|
||||
without_exit.txt,AStar,0.052090000826865435,48.0,0.0
|
||||
10x10.txt,BFS,0.02643000007083174,30.0,29.0
|
||||
10x10.txt,DFS,0.03684999974211678,43.0,29.0
|
||||
10x10.txt,AStar,0.0320400002237875,30.0,29.0
|
||||
50x50.txt,BFS,0.6697899993014289,799.0,316.0
|
||||
50x50.txt,DFS,0.4721500004961854,562.0,350.0
|
||||
50x50.txt,AStar,0.5986000000120839,539.0,316.0
|
||||
100x100.txt,BFS,3.000480001355754,3576.0,196.0
|
||||
100x100.txt,DFS,0.4453900000953581,595.0,364.0
|
||||
100x100.txt,AStar,0.5786999998235842,522.0,196.0
|
||||
empty.txt,BFS,0.29044999937468674,324.0,35.0
|
||||
empty.txt,DFS,0.16180000056920107,324.0,171.0
|
||||
empty.txt,AStar,0.40738000025157817,324.0,35.0
|
||||
without_exit.txt,BFS,0.04074000025866553,48.0,0.0
|
||||
without_exit.txt,DFS,0.040809999700286426,48.0,0.0
|
||||
without_exit.txt,AStar,0.05192000025999732,48.0,0.0
|
||||
|
|
|
|||
|
|
|
@ -1,5 +1,8 @@
|
|||
from abc import ABC, abstractmethod
|
||||
from collections import deque
|
||||
import matplotlib.pyplot as plt
|
||||
import pandas as pd
|
||||
import seaborn as sns
|
||||
import heapq
|
||||
import time
|
||||
import os
|
||||
|
|
@ -221,7 +224,6 @@ class ConsoleView(Observer):
|
|||
|
||||
#Этап 6
|
||||
mazes = ["10x10.txt","50x50.txt","100x100.txt","empty.txt","without_exit.txt"]
|
||||
|
||||
results =[["лабиринт",
|
||||
"стратегия",
|
||||
"время_мс",
|
||||
|
|
@ -235,6 +237,7 @@ strategies = {
|
|||
builder = TextFileMazeBuilder()
|
||||
n=10
|
||||
directory = os.path.join("docs", "data")
|
||||
|
||||
for maze_name in mazes:
|
||||
print(maze_name)
|
||||
file_name=os.path.join(directory, maze_name)
|
||||
|
|
@ -258,9 +261,39 @@ for maze_name in mazes:
|
|||
print(f"{maze_name} стратегия: {strategy_name} время_мс: {avg_time} посещено_клеток: {avg_visited} длина_пути: {avg_path_length}")
|
||||
results.append([maze_name, strategy_name, avg_time, avg_visited, avg_path_length])
|
||||
path, _ = strategy.findPath(maze, maze.start, maze.exit)
|
||||
path=path[1:-1]
|
||||
viewer.render(maze, path)
|
||||
csv_filename = os.path.join(directory, "maze_results.csv")
|
||||
with open(csv_filename, "w", newline="", encoding="utf-8-sig") as f:
|
||||
writer = csv.writer(f)
|
||||
writer.writerows(results)
|
||||
|
||||
#Графики
|
||||
df = pd.read_csv(csv_filename)
|
||||
fig, (ax1, ax2, ax3) = plt.subplots(1, 3, figsize=(16, 6))
|
||||
|
||||
sns.barplot(data=df, x='лабиринт', y='время_мс', hue='стратегия', ax=ax1)
|
||||
ax1.set_title('Время выполнения алгоритмов')
|
||||
ax1.set_xlabel('Лабиринты')
|
||||
ax1.set_ylabel('Время (мс)')
|
||||
ax1.grid(axis='y', linestyle='--', alpha=0.7)
|
||||
ax1.legend()
|
||||
|
||||
sns.barplot(data=df, x='лабиринт', y='посещено_клеток', hue='стратегия', ax=ax2)
|
||||
ax2.set_title('Количество посещенных клеток')
|
||||
ax2.set_xlabel('Лабиринты')
|
||||
ax2.set_ylabel('Количество клеток')
|
||||
ax2.grid(axis='y', linestyle='--', alpha=0.7)
|
||||
ax2.legend()
|
||||
plt.tight_layout()
|
||||
|
||||
sns.barplot(data=df, x='лабиринт', y='длина_пути', hue='стратегия', ax=ax3)
|
||||
ax3.set_title('Длина пути')
|
||||
ax3.set_xlabel('Лабиринты')
|
||||
ax3.set_ylabel('Количество клеток')
|
||||
ax3.grid(axis='y', linestyle='--', alpha=0.7)
|
||||
ax3.legend()
|
||||
plt.tight_layout()
|
||||
|
||||
img = os.path.join(directory, "maze_graphics.png")
|
||||
plt.savefig(img, dpi=300)
|
||||
plt.show()
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user