import matplotlib.pyplot as plt
import os

def get_values_csv(filename, chars = []):
    cwd = os.getcwd() + '/'
    with open(cwd + filename,'r') as file:
        line = file.readline() #leser første linje
        x_name,y_name = line.split(';')
        line = file.readline().strip()# første linje er ikke verdier
        x,y = [],[]
        print(line)
        if not chars:
            while line:
                x.append(float(line.split(';')[0].replace(',','.')))
                y.append(float(line.split(';')[1].replace(',','.')))
                line = file.readline().strip()

        else:
            while line:
                print(line)
                for char in chars:
                    line = line.strip(char)
                x.append(float(line.split(';')[0].replace(',','.')))
                y.append(float(line.split(';')[1].replace(',','.')))
                line = file.readline().strip()
    return x_name,x,y_name,y

def get_values_txt(filename, chars):
    cwd = os.getcwd() + '/'
    with open(cwd + filename,'r') as file:
        line = file.readline() #leser første linje
        x_name,y_name = line.split()
        line = file.readline().split()# første linje er ikke verdier
        x,y = [],[]
        line = file.readline().split()
        if not chars:
            while line:
                x.append(float(line[0].replace(',','.')))
                y.append(float(line[1].replace(',','.')))
                line = file.readline().split()

        else:
            while line:
                print(line)
                for char in chars:
                    line = line.strip(char)
                x.append(float(line[0].replace(',','.')))
                y.append(float(line[1].replace(',','.')))
                line = file.readline()

    x,y = x, y
    return x_name,x,y_name,y

def plot(data=None, name = 'my_plot', chars = []):
    if data == None:
        return 'plot(data = name of data file, name = name of plot, chars = list of characters to strip)'
    if '.txt' in data:
        x_name, x, y_name, y = get_values_txt(data, chars=chars)
    elif '.csv' in data:
        x_name, x, y_name, y = get_values_csv(data, chars=chars)
    else:
        return 'file must be .csv or .txt'

    plt.figure()

    min_x, max_x = min(x) - 1, max(x) + 1
    min_y, max_y = min(y) - 1, max(y) + 1

    plt.plot(x, y)
    plt.xlim(min_x, max_x)
    plt.ylim(min_y, max_y)

    plt.xlabel(x_name)
    plt.ylabel(y_name)

    plt.savefig(name)