Zeitliche Darstellung von Messwerten

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Hi liebes Forum,
ich habe bis jetzt folgende Daten im csv format:

data_FBGS =

Code: Alles auswählen

DateTime;Temp1;Temp2;Temp3;Temp4
2014-09-09 15:59:46.296000;21.119187757507333;15.698826979476781;12.85964391690625;13.03055878929256
2014-09-09 16:09:46.375000;21.148616833440343;15.698826979476781;12.829970326402503;13.001455180445749
also Zeit, Sensor1 mit Messwert, Sensor2 mit Messwert...

und ich habe:
T_Sensor_depth =

Code: Alles auswählen

array([ 0,  1,  2,  3  ])
Jetzt möchte ich die Messwerte in den bestimmten Tiefen über die Zeit mit plt.imshow darstellen (x-Achse=Zeit; y-Achse=Tiefe).
Bis jetzt habe ich folgendes Probiert:

Code: Alles auswählen

years     = mdates.YearLocator()   # every year
months    = mdates.MonthLocator()  # every month
days      = mdates.DayLocator()    # every day
yearsFmt  = mdates.DateFormatter('%Y')
monthsFmt = mdates.DateFormatter('%b-%Y')
daysFmt   = mdates.DateFormatter('%d-%m-%Y')
ymajorFmt2 = FormatStrFormatter('%.2f')
ymajorFmt3 = FormatStrFormatter('%.3f')

T_FBGS_max = max(data_FBGS)
T_FBGS_min = min(data_FBGS)

fig2 = plt.figure(2) 
ab2 = fig2.add_subplot(212)
#colorbar
cmap = plt.cm.spectral
cmap.set_over(color='w',alpha=10)
cmap.set_under(color='k',alpha=10)
norm = colors.Normalize(vmin = T_FBGS_min, vmax = T_FBGS_max)

#date xAchse
ab2.xaxis.set_major_locator(months)
ab2.xaxis.set_minor_locator(days)
ab2.xaxis.set_major_formatter(monthsFmt)

ab2.xaxis.grid(True, which='major')  
xmin,xmax = mdates.date2num([min(data_FBGS),max(data_FBGS)])
ymin,ymax = min(T_fiber_depth),max(T_fiber_depth)

plt.imshow(data_FBGS.T,extent=[xmin,xmax,ymax,ymin],cmap=cmap,origin='bottom',aspect='auto',interpolation='gaussian')
for i in range(len(T_fiber_depth)):
    ab2.axhline(T_fiber_depth[i],color='k',lw=0.01,linestyle=':')  
ab2.xaxis_date()
fig2.autofmt_xdate()
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Lienz20013 hat geschrieben:Bis jetzt habe ich folgendes Probiert:
Und wo ist das Problem? Wie lautet die Fehlermeldung? Was gefällt Dir am Plot nicht?
a fool with a tool is still a fool, www.magben.de, YouTube
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Er ist falsch herum. Die Tiefen und die Messwerte.
Also Temp1 = 3 soll aber Temp1 = 0 sein.
Und ich hätte vieleicht gerne den Mittelwert oder Median jedes der Messwerte bei jedem Sensor abgezogen damit ich eine bessere auflösung von kleineren variationen bekomme.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Lienz20013 hat geschrieben:Er ist falsch herum. Die Tiefen und die Messwerte.
Also Temp1 = 3 soll aber Temp1 = 0 sein.
probier statt
plt.imshow(data_FBGS.T,extent=[xmin,xmax,ymax,ymin],cmap=cmap,origin='bottom',aspect='auto',interpolation='gaussian')
lieber
plt.imshow(data_FBGS.T,extent=[xmin,xmax,ymin,ymax],cmap=cmap,origin='bottom',aspect='auto',interpolation='gaussian')

Das korrigiert zwar nicht die angezeigten Werte, aber die Skala.
a fool with a tool is still a fool, www.magben.de, YouTube
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Ja so ist die Zuordnung richtig aber wie kann ich die Werte umdrehen?
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Code: Alles auswählen

plt.imshow(data_FBGS[:,::-1].T,extent=[xmin,xmax,ymax,ymin],cmap=cmap,origin='bottom',aspect='auto',interpolation='gaussian')
a fool with a tool is still a fool, www.magben.de, YouTube
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Danke aber da kommt bei mir der fehler

TypeError: unhashable type
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

Was ist data_FBGS denn für ein Typ? Ich bin davon ausgegangen, dass es numpy.ndarray ist.

Code: Alles auswählen

print(data_FBGS.__class__)
# sollte <type 'numpy.ndarray'> ausgeben
a fool with a tool is still a fool, www.magben.de, YouTube
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Nein leider nicht sondern

Code: Alles auswählen

<class 'pandas.core.frame.DataFrame'>
mein Fehler da ich nur einen Auszug des Programms geliefert habe.
Benutzeravatar
MagBen
User
Beiträge: 799
Registriert: Freitag 6. Juni 2014, 05:56
Wohnort: Bremen
Kontaktdaten:

dann probier mal das

Code: Alles auswählen

plt.imshow(data_FBGS.values[:,::-1].T,extent=[xmin,xmax,ymax,ymin],cmap=cmap,origin='bottom',aspect='auto',interpolation='gaussian')
a fool with a tool is still a fool, www.magben.de, YouTube
Lienz20013
User
Beiträge: 88
Registriert: Freitag 26. September 2014, 14:42

Ja sehr schön danke.
Antworten