is_assignments/a1/code/visualization.py

113 lines
3.5 KiB
Python
Raw Normal View History

2022-11-12 22:36:54 +01:00
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()