import matplotlib.pyplot as plt import numpy as np import csv import math def read_csv(filename): data = list() header = None with open(filename, "r") as file: reader = csv.reader(file) header = next(reader, None) print(header) for row in reader: data.append([float(d) for d in row]) return header, data def main(filename): header, data = read_csv(filename) x = [d[0] for d in data] y = dict() for h in range(1, len(header)): y[header[h]] = list() for d in data: for idx in range(0, len(d)-1): y[header[idx+1]].append(d[idx+1]) min_x = min(x) max_x = max(x) min_x_tick_power = math.floor(math.log10(min_x)) max_x_tick_power = math.ceil(math.log10(max_x)) xticks = [10**p for p in range(min_x_tick_power, max_x_tick_power)] headers = list() for key,value in y.items(): plt.plot(x, value) headers.append(key) plt.legend(["acc={}".format(h) for h in headers]) plt.xscale("log") plt.grid(True) plt.xlabel("Input to sqrt()") plt.ylabel("Relative Error") #plt.xticks(xticks) plt.title("Relative error of sqrt()") plt.show() if __name__ == "__main__": main("exercise_1_7_data.csv")