import csv, sys from lib2to3.pgen2.pgen import DFAState import plotly.express as px import plotly.io as pio import plotly.graph_objects as go import numpy import pandas from scipy import signal filename = 'example_data/TachymeterTable_103.csv' # einfaches Beispiel: CSV direkt ausgeben: #with open(filename, newline='') as f: # reader = csv.reader(f) # try: # for row in reader: # print(row) # except csv.Error as e: # sys.exit('file {}, line {}: {}'.format(filename, reader.line_num, e)) class Tachies(object): """This class contains lists of values created from csv rows""" def __init__(self): self.index = [] self.Time = [] self.x = [] self.y = [] self.z = [] self.d = [] self.deltaT = [] self.SOG = [] self.RelTime = [] self.Beschleunigung = [] self.BeschleunigungDeltaTFix = [] self.ABSBeschleunigung = [] def appendRow(self, i, row, header): aDict = dict(zip(header, row)) self.index.append(i) self.Time.append(aDict["Time"]) self.x.append(aDict["x"]) self.y.append(aDict["y"]) self.z.append(aDict["z"]) self.d.append(aDict["d"]) self.deltaT.append(aDict["deltaT"]) self.SOG.append(float(aDict["SOG"])) self.RelTime.append(aDict["RelTime"]) self.Beschleunigung.append(aDict["Beschleunigung"]) self.BeschleunigungDeltaTFix.append(aDict["BeschleunigungDeltaTFix"]) self.ABSBeschleunigung.append(aDict["ABSBeschleunigung"]) # Time,x,y,z,d,deltaT,SOG,RelTime,Beschleunigung,BeschleunigungDeltaTFix,ABSBeschleunigung class Tachymeter(object): def __init__(self, i, Time, x, y, z, d, deltaT, SOG, RelTime, Beschleunigung, BeschleunigungDeltaTFix, ABSBeschleunigung): self.index = i self.Time = Time self.x = x self.y = y self.z = z self.d = d self.deltaT = deltaT self.SOG = SOG self.RelTime = RelTime self.Beschleunigung = Beschleunigung self.BeschleunigungDeltaTFix = BeschleunigungDeltaTFix self.ABSBeschleunigung = ABSBeschleunigung def __init__(self, row, header): self.__dict__ = dict(zip(header, row)) self.index = row data = list(csv.reader(open(filename, newline=''))) # Erzeugung einer Klasse Tachies und Hinzufügen aller Werte t = Tachies() i = 0 for d in data[1:]: t.appendRow(i, d, data[0]) i+=1 # Erzeugung einer Liste von Klassen vom Typ Tachymeter tachies = [Tachymeter(i, data[0]) for i in data[1:]] # for tachy in tachies: # print(tachy.x) #fig = dict({ # "data": [{"type": "bar", # "x": [1, 2, 3], # "y": [1, 3, 2]}], # "layout": {"title": {"text": "A Figure Specified By Python Dictionary"}} #}) # pio.show(fig) # fig = px.line(x=t.index, y=t.SOG, title="SOG") fig = go.Figure() fig.add_trace(go.Scatter(x=t.index, y=t.SOG, mode='lines', name='SOG')) fig.add_trace(go.Scatter(x=t.index, y=signal.savgol_filter(t.SOG, 53, 3), mode='lines', name='Smooth SOG')) fig.write_html("smooth.html") fig.show() #df = dict( { # "x" : [ 1, 2, 3, 4, 5], # "y" : [0.4, 2.3, 2.4, 2.7, 1.3] #}) #fig = go.Figure(go.Line(x = t.index, y = t.SOG, name='SOG')) #fig.update_layout(title='Apple Share Prices over time (2014)', # plot_bgcolor='rgb(230, 230,230)', # showlegend=True) #fig.show()