Seite 1 von 1

x Werte von plot per hand eintragen

Verfasst: Dienstag 13. Juli 2021, 16:47
von Cleo_DaVinci
Hi,
ich habe ein Programm, welches .csv Dateien ausliest und einen Graphen plottet. Ein Ausschnitt der Datei sieht so aus:

Code: Alles auswählen

2.280619230E-1;2.100000000E1
4.085474990E-1;2.300000000E1
5.885859610E-1;1.600000000E1
usw..
Die Funktion, welche den Graphen plottet sieht so aus:

Code: Alles auswählen

def create_subplot(x_values, y_values, start_percent, end_percent):
    
    x_min= int(len(x_values)/100*start_percent-1)
    x_max= int(len(x_values)/100*end_percent-1)
    x_values=x_values[x_min:x_max+1]
    y_values=y_values[x_min:x_max+1]
    
    plt.plot(x_values, y_values)
    plt.savefig("plot.pdf")
    plt.show()

Die x-Werte sind vom Messversuch in Sekunden eingetragen. Wie kann ich diese überschreiben und die Werte der Uhrzeit per Hand eintragen?
Vielen Dank

Re: x Werte von plot per hand eintragen

Verfasst: Dienstag 13. Juli 2021, 17:22
von __deets__
Warum denn ein neues Thema zum gleichen Problem? Das haben wir doch schon hier angefangen zu diskutieren: viewtopic.php?f=1&t=52524

Und dein Problem ist nicht ausreichend gut beschrieben. Pythons datetime Bibliothek kann keine Zeitarithmetik mit reinen Zeiten, weil man nunmal nur 24h am Tag hat, und damit gilt nicht zwingend, das zeitpunkt + offset > zeitpunkt ist. Das ist aber leider wichtig fuer vernuenftiges Arbeiten damit.

Du brauchst also einen vollen Startzeitpunkt. Wenn du den hast, ist es trivial:

Code: Alles auswählen

import datetime

DATA = [
    (2.280619230E-1, 2.100000000E1),
    (4.085474990E-1, 2.300000000E1),
    (5.885859610E-1, 1.600000000E1)
]

start_date = datetime.datetime.now()

for timestamp, value in DATA:
    timestamp = start_date + datetime.timedelta(seconds=timestamp)
    print(timestamp, value)