113 lines
3.5 KiB
Python
113 lines
3.5 KiB
Python
from matplotlib import pyplot as plt
|
|
|
|
def read_classic_data():
|
|
task_one_classic_data = []
|
|
task_two_classic_data = []
|
|
with open("log_t1_classic.txt", "r") as f:
|
|
# Read csv file
|
|
data = f.read()
|
|
# Split data into lines
|
|
data = data.splitlines()
|
|
# Split lines into columns
|
|
data = [line.split(",") for line in data]
|
|
data = data[1:]
|
|
# Remove third column
|
|
for row in data:
|
|
task_one_classic_data.append(row[:2])
|
|
|
|
with open("log_t2_classic.txt", "r") as f:
|
|
# Read csv file
|
|
data = f.read()
|
|
# Split data into lines
|
|
data = data.splitlines()
|
|
# Split lines into columns
|
|
data = [line.split(",") for line in data]
|
|
data = data[1:]
|
|
# Remove third column
|
|
for row in data:
|
|
task_two_classic_data.append(row[:2])
|
|
|
|
return task_one_classic_data, task_two_classic_data
|
|
|
|
def plot_classic_data(task_one_classic_data, task_two_classic_data):
|
|
# Plot data
|
|
x = [int(row[0]) for row in task_one_classic_data]
|
|
y_task_one = [float(row[1]) for row in task_one_classic_data]
|
|
y_task_two = [float(row[1]) for row in task_two_classic_data]
|
|
plt.plot(x, y_task_one,label="Task 1")
|
|
plt.plot(x, y_task_two, label="Task 2")
|
|
plt.suptitle(f"Comparison between task 1 and task 2 code (n_tests: {len(x)})")
|
|
plt.xlabel("Maze")
|
|
plt.ylabel("Time (s)")
|
|
plt.legend()
|
|
# Save plot
|
|
plt.savefig("../report/images/provided_tests_comparrison.png")
|
|
plt.clf()
|
|
|
|
|
|
def read_harder_data():
|
|
harder_data = []
|
|
with open("log_t2_harder.txt", "r") as f:
|
|
# Read csv file
|
|
data = f.read()
|
|
# Split data into lines
|
|
data = data.splitlines()
|
|
# Split lines into columns
|
|
data = [line.split(",") for line in data]
|
|
data = data[1:]
|
|
# Remove third column
|
|
for row in data:
|
|
harder_data.append(row[:2])
|
|
return harder_data
|
|
|
|
def plot_harder_data(harder_data):
|
|
# Plot data
|
|
x = [int(i) for i in range(50, 950, 50)]
|
|
y = [float(row[1]) for row in harder_data]
|
|
plt.plot(x, y)
|
|
plt.suptitle(f"How maze size affects time (n_tests: {len(x)})")
|
|
plt.xlabel("Maze size (N) -> (N x N)")
|
|
plt.ylabel("Time (s)")
|
|
# Save plot
|
|
plt.savefig("../report/images/custom_tests_comparrison.png")
|
|
plt.clf()
|
|
|
|
|
|
def read_treasure_data():
|
|
treasure_data = []
|
|
with open("log_t3_treasure_hunt.txt", "r") as f:
|
|
# Read csv file
|
|
data = f.read()
|
|
# Split data into lines
|
|
data = data.splitlines()
|
|
# Split lines into columns
|
|
data = [line.split(",") for line in data]
|
|
data = data[1:]
|
|
# Remove third column
|
|
for row in data:
|
|
treasure_data.append(row[:2])
|
|
return treasure_data
|
|
|
|
def plot_treasure_data(treasure_data):
|
|
# Plot data
|
|
x = [int(row[0]) for row in treasure_data]
|
|
y = [float(row[1]) for row in treasure_data]
|
|
plt.plot(x, y)
|
|
plt.suptitle(f"Treasure hunt for provided tests (n_tests: {len(x)})")
|
|
plt.xlabel("Maze")
|
|
plt.ylabel("Time (s)")
|
|
# Save plot
|
|
plt.savefig("../report/images/treasures_comparrison.png")
|
|
plt.clf()
|
|
|
|
def main():
|
|
task_one_classic_data, task_two_classic_data = read_classic_data()
|
|
plot_classic_data(task_one_classic_data, task_two_classic_data)
|
|
harder_data = read_harder_data()
|
|
plot_harder_data(harder_data)
|
|
treasure_data = read_treasure_data()
|
|
plot_treasure_data(treasure_data)
|
|
|
|
if __name__ == "__main__":
|
|
main()
|