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".
Messdaten (100.000+) auswerten, Diagramme erzeugen
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!
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!
Falls möglich, stell den Link zur Originaldatei doch gerne hier rein, da ist die Schwelle dir zu helfen für alle niedriger.
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()
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
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
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
Code: Alles auswählen
xlim=(['2018-02-11 11:44:50', '2018-02-11 12:25:22'])
Code: Alles auswählen
plt.axis([0, 50, 12, 20])
Danke
Also ich habe jetzt doch die Zeitachse so hinbekommen wie ich wollte, dafür sind aber die Messwerte weg.
edit: Geht jetzt doch, Datum und Uhrzeiten waren bei mir nur etwas anders.
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'])
Freut mich, dass ich dir helfen konnte.
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
schau mal hier: https://matplotlib.org/tutorials/text/annotations.html
Ich bin Pazifist und greife niemanden an, auch nicht mit Worten.
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png
Für alle meine Code Beispiele gilt: "There is always a better way."
https://projecteuler.net/profile/Brotherluii.png