# Auswertung und grafische Darstellung von Messwerten

# plotting framework importieren
import matplotlib.pyplot as plt

# Anzahl und Summe der relevanten Messwerte nullen
anzahl = summe = 0

# die X- und Y-Koordinaten für das Diagramm
x = []
y = []

# die Messwerte zeilenweise einlesen und verarbeiten
#
#   2018-04-06 17:17:03.224234 05 05.96 00.00 53.46
#
for zeile in open('leftdrill3.txt'):
    # die Zeile in Felder zerlegen
    felder = zeile.split()

    # das Datum aus Spalte 1 und die Leistung aus der letzten Spalte entnehmen;
    # die Leistung wird nach float konvertiert
    datum = felder[0]
    leistung = float(felder[-1])

    # das Datum anders formatieren: YYYY-MM-DD ==> TT.MM.JJJJ
    j, m, t = datum.split('-')
    datum = f'{t}.{m}.{j}'
    # oder:
    # datum = '{}.{}.{}'.format(t, m, j)
    # datum = t + '.' + m + '.' + j

    # nur Werte betrachten, die zwischen 50 und 60 liegen
    if 50 < leistung < 60:
        # Ausgabe von Datum und Leistung
        print(f'{datum} {leistung:.2f}')
        #print('{} {:.2f}'.format(datum, leistung))

        # die Leistung summieren und die Anzahl der Summanden inkrementieren,
        # so dass wir am Ende ein arithmetisches Mittel bilden können
        summe += leistung
        anzahl += 1

        # die aktuelle Anzahl als X-Koordinate und die Leistung als
        # Y-Koordinate vermerken
        x.append(anzahl)
        y.append(leistung)

if anzahl:
    # die Anzahl ist nicht 0, dann das arithmetische Mittel bilden
    print('Mittel', summe / anzahl)

# die ersten 15 Elemente der Listen x und y ausgeben
print(x[:15])
print(y[:15])

# das Diagramm zeichnen
plt.plot(x, y)
plt.title('Messwert-Diagramm')
plt.show()
