Seite 2 von 2
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Sonntag 4. November 2018, 21:39
von Mogician
Also ich bekomme immer einen der beiden Error, egal ob ich Komma oder Punkt mache.
Hab eben mal alle anderen TI-Zeilen gelöscht, und die TI101 mit Punkt und Komma ausprobiert, error war immer "TypeError: Empty 'DataFrame': no numeric data to plot".
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Montag 5. November 2018, 10:02
von Mogician
Hat vielleicht noch einer eine Lösung oder ein Beispiel mit einer einfachen Datei, wo es funktioniert?
Danke
edit: Frage nach einem Beispiel besteht jetzt nicht mehr unbedingt, da ThomasL (Danke dafür) das schon macht. Wenn jemand trotzdem einen Einfall hat wäre das natürlich immer noch interessant. Danke an alle!
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Montag 5. November 2018, 17:32
von nezzcarth
Mogician hat geschrieben: ↑Sonntag 4. November 2018, 19:32
Natürlich gerne. Soll ich das irgendwo hochladen und dir den Link schicken oder geht das auch irgendwo hier, oder direkt?
Falls möglich, stell den Link zur Originaldatei doch gerne hier rein, da ist die Schwelle dir zu helfen für alle niedriger.
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Montag 5. November 2018, 18:25
von ThomasL
Mogician, du hast das Notebook in deinem Postfach
Code: Alles auswählen
import pandas as pd
import matplotlib as mpl
import matplotlib.pyplot as plt
%matplotlib inline
df = pd.read_table('Daten_02112018114518.txt', skiprows=[0,1,2,3,4,5,6,7,8,9,10,11,13], index_col=False)
df.info()
df.head(2)
# zusammenfügen der Spalten DATE und TIME zu einer vom Typ DATETIME
newdate = df['Date'] + ' ' + df['Time']
newdate = pd.to_datetime(newdate, errors='raise')
newdate = pd.DataFrame(newdate, columns=['date_time'])
df = pd.concat([newdate, df], axis=1)
# die DATETIME Spalte als Index definieren
df.set_index('date_time', inplace=True)
df.head(2)
df['TI101'].plot(kind='line', figsize=(10,5), color=['black'], ylim=[40, 140], xlim=['2018-02-11 11:44:50', '2018-02-11 12:25:22'])
plt.title('TI101')
plt.ylabel('Messwert')
plt.xlabel('Zeitpunkt')
plt.show()
TI101_102 = df[['TI101', 'TI102']]
diff = pd.DataFrame(df.TI101 - df.TI102, columns=['Difference'])
TI101_102 = pd.concat([TI101_102, diff], axis=1)
TI101_102.plot(kind='line', color=['blue', 'green', 'red'], figsize=(18,5), rot=90, xlim=['2018-02-11 11:44:50', '2018-02-11 12:25:22'])
plt.title('TI101 und TI102, sowie Differenz der beiden')
plt.ylabel('Messwert')
plt.xlabel('Zeitpunkt')
plt.legend(labels=TI101_102.columns, loc='best')
plt.show()
fig = plt.figure() # create figure
ax0 = fig.add_subplot(1, 2, 1) # add subplot 1 (1 row, 2 columns, first plot)
ax1 = fig.add_subplot(1, 2, 2) # add subplot 2 (1 row, 2 columns, second plot). See tip below**
# Subplot 1:
df[['TI101', 'TI102']].plot(kind='line', figsize=(18,5), ax=ax0, color=['blue', 'green'], xlim=['2018-02-11 11:44:50', '2018-02-11 12:25:22']) # add to subplot 1
ax0.set_title('T1101 und TI102')
ax0.set_ylabel('Messwerte')
ax0.set_xlabel('Zeitpunkte')
# Subplot 2:
diff = pd.DataFrame(df.TI101 - df.TI102, columns=['Differenz'])
diff.plot(kind='line', figsize=(18, 5), ax=ax1, ylim=[-5,17], xlim=['2018-02-11 11:44:50', '2018-02-11 12:25:22']) # add to subplot 2
ax1.set_title ('Differenz')
ax1.set_ylabel('Messwerte')
ax1.set_xlabel('Zeitpunkte')
ax1.annotate('Was ist das für eine Spitze?', xy=('2018-02-11 12:01:00', -3))
plt.show()
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Donnerstag 8. November 2018, 18:11
von Mogician
Super, der code hilft mir schon massiv weiter. Eine Frage hätte ich jetzt noch.
Wie greife ich einen bestimmten Wertebereich raus auf der x-Achse, also zb wenn die Messung von 12h bis 15h lief, und man nur von 13h-14h plotten möchte?
Für die y-Achse hab ich das geschafft, aber wegen dem Zeitformat noch nicht auf der x-Achse.
Also ich habe probiert den code von ThomasL anzuwenden
und auch
und den letzten dann auch mit diversen xmin und xmax Werten aber im Ergebnis kriege ich immer was ganz anderes auf der x-Achse
Danke
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Donnerstag 8. November 2018, 18:54
von Mogician
Also ich habe jetzt doch die Zeitachse so hinbekommen wie ich wollte, dafür sind aber die Messwerte weg.
Code: Alles auswählen
plt.figure()
df['TI111'].plot()
df['TI112'].plot()
df['TI113'].plot()
df['TI114'].plot()
df['TI115'].plot()
df['TI116'].plot()
plt.xlim(58800,62000)
plt.legend()
plt.xlabel('Time')
plt.ylabel('Temperature [°C]')
edit: Geht jetzt doch, Datum und Uhrzeiten waren bei mir nur etwas anders.
Code: Alles auswählen
plt.xlim(['2018-11-07 16:10:00', '2018-11-07 17:10:00'])
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Donnerstag 8. November 2018, 19:35
von ThomasL
Freut mich, dass ich dir helfen konnte.
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Sonntag 11. November 2018, 23:20
von Mogician
Habt ihr vielleicht noch eine Idee, wie ich den Kurven immer einen Namen direkt zuweisen kann? Also nicht über die Legende? Das wird sonst schnell unübersichtlich.
Danke
Re: Messdaten (100.000+) auswerten, Diagramme erzeugen
Verfasst: Montag 12. November 2018, 07:09
von ThomasL