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.
@BlackJack: Die Daten sind aber in einem nahezu identischen Zeitraum. Sollte ich mich irren, dann muss er seine Messergebnisse eben in Relation zu einem bestimmten Ereignis präsentieren. In seinem Fall könnte das beispielsweise das Einschalten des Ofens sein.
...
#self.timeKurve sind y-Werte die schon in vorigem Quelltext erstellt wurden
self.plotCH_Zeit.plot(self.timeAchseData,self.timeKurve,'g',linewidth = 0.6)
self.plotCH_Zeit.twinx()
self.plotCH_Zeit.twiny()
try:
self.timeAchseOfen = self.TimeAchse(self.dataOfen,typ = 'Ofen')
#self.ofenKurve ist die Temperatur die ebefnalls schon in vorhergegangenem Code erstellt
self.plotCH_Zeit.plot(self.timeAchseOfen,self.ofenKurve,'r',linewidth = 0.8)
except:
...
Denoch würde ich dir raten nur eine Zeitachse zu verwenden. Mit zwei x-Achsen verzerrst du dein Ergebnis und es wird (außer dir vielleich) keiner mehr sinnvoll interpretieren können.
Also, für mich stellt sich das im Alltag eher so da:
- entweder es gibt zwei Detektoren, die zwei nicht in unmittelbarer Beziehung stehende Signale zu verschiedenen Zeitpunkten messen: übereinanderplotten unter Berücksichtigung der verschieden "X-Werte", aber bei einer gemeinsamen X-Achse. Eine gemeinsame X-Achse / Abszissenachse weil es sich ja um den selben Datentyp handelt. Alles andere verwirrt und ist falsch, wie hier mehrfach ausgeführt.
- oder es gibt zwei Detektoren, die zwei in unmittelbarer Beziehung stehende Signale zu verschiedenen Zeitpunkten messen, z. B. weil das zu messende Objekt sich von einem zum anderen Detektor bewegt: in diesem Fall kann ein Alignmentproblem vorliegen. Hier kann man den zeitlichen Versatz zwischen den Detektoren bestimmen und das Signal des zweiten Detektors beispielweise auf dasjenige des ersten "alignen", sprich: verschieben. Danach würden die Signale die x-Werte teilen und können wie gehabt übereinander geplottet werden.
Beispiel für Fall 1: In einem Topf wird zeitabhängig Feuchtigkeit und Temperatur gemessen. Die Detektoren samplen u. U. unterschiedlich, setzten zu unterschiedlichen Zeitpunkten ein.
Beispiel für Fall 2: Lösung wird durch einen Schlauch / Kapillare gepumpt und kommt erst ein Detektor 1, dann 2 an. Beide Detektoren messen jedoch ein und die selbe Probe, nur eben zu unterschiedlichen Zeitpunkten, u. U. auch unterschiedlich gesampled.
Die Aufnahmerate / das Sampling bestimmt allenfalls die Auflösung des Alignments im Fall 2, hat aber nichts mit dem Plotting an sich zu tun.
Alignmentprobleme können mit scipy's interpolate ganz gut verbessert werden, da dann die apparente Auflösung besser werden kann. Man gewinnt zwar nicht tatsächlich Auflösung, oftmals aber etwas Sicherheit im Umgang mit den Daten, weil man so auch das Rauschen in den Griff bekommen kann. Falls Du da etwas mehr wissen willst, hilft das scipy-Cookbook.
ich muss ja sagen dass ich es interessant finde wie hier verschiedene Meinungen zu einem Thema zusammenkommen. Im Gegensatz zu anderen Foren wird hier wenigstens sich nicht angekeift und darauf beharrt das nur eine Meinung richtig sein kann.
Und ich muss sagen das man auch 2 Kurven miteinander vergleichen kann auch wenn x-und y-Achsen unterschiedlich sind. Solange man den Trend vergleicht ist das möglich. Wenn ich mir vorstell ich hab 2 seperate Diagramme, dann kann ich zu jeder Kurve die Aussage treffen ob diese steigend,fallend, usw. ist. Ganz gleich welche Rahmenbedingungen vorherrschen. Und ich kann dann auch Aussage zu einer anderen Kurve tätigen die völlig anders aufgebaut ist. Denn ich kann ja die Aussage treffen, dass bei beiden Kurven der Trend herrscht sich mit längerem x-Wert zu steigern oder zu fallen, etc.
Für mich wärs einfach nur interessant gewesen ob das mit der zweiten x-Achse möglich ist.
@Rekrul:
Ich hab deinen Quelltext mal so probiert, jedoch wird mir ein ValueError geworfen, vielleicht sagt der euch was:
Traceback (most recent call last):
File "C:\Dokumente und Einstellungen\devoegse\Desktop\Python\Brose\Version 2\Datenauswertung.py", line 319, in UseLimitkurve
self.stat.Plot()
File "C:\Dokumente und Einstellungen\devoegse\Desktop\Python\Brose\Version 2\Statistik.py", line 332, in Plot
self.uiStat.mplwidgetZeit.draw()
File "C:\Programme\Python27\lib\site-packages\matplotlib\backends\backend_qt4agg.py", line 130, in draw
FigureCanvasAgg.draw(self)
File "C:\Programme\Python27\lib\site-packages\matplotlib\backends\backend_agg.py", line 394, in draw
self.figure.draw(self.renderer)
File "C:\Programme\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Programme\Python27\lib\site-packages\matplotlib\figure.py", line 798, in draw
func(*args)
File "C:\Programme\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Programme\Python27\lib\site-packages\matplotlib\axes.py", line 1946, in draw
a.draw(renderer)
File "C:\Programme\Python27\lib\site-packages\matplotlib\artist.py", line 55, in draw_wrapper
draw(artist, renderer, *args, **kwargs)
File "C:\Programme\Python27\lib\site-packages\matplotlib\axis.py", line 971, in draw
tick_tups = [ t for t in self.iter_ticks()]
File "C:\Programme\Python27\lib\site-packages\matplotlib\axis.py", line 904, in iter_ticks
majorLocs = self.major.locator()
File "C:\Programme\Python27\lib\site-packages\matplotlib\dates.py", line 743, in __call__
self.refresh()
File "C:\Programme\Python27\lib\site-packages\matplotlib\dates.py", line 752, in refresh
dmin, dmax = self.viewlim_to_dt()
File "C:\Programme\Python27\lib\site-packages\matplotlib\dates.py", line 524, in viewlim_to_dt
return num2date(vmin, self.tz), num2date(vmax, self.tz)
File "C:\Programme\Python27\lib\site-packages\matplotlib\dates.py", line 289, in num2date
if not cbook.iterable(x): return _from_ordinalf(x, tz)
File "C:\Programme\Python27\lib\site-packages\matplotlib\dates.py", line 203, in _from_ordinalf
dt = datetime.datetime.fromordinal(ix)
ValueError: ordinal must be >= 1
Hmmm .... ich habe das was ich dir gegeben habe auch bei mir getestet und es funktioniert so, wie du es dir vorstellst. Vielleicht liegt der Fehler bei TimeAchse. Test doch mal das Ergebnis ausführlich.
PS: Ich hoffe du hast dir mal die Mühe gemacht den Tip von gkuhl umzusetzen. Es ist schon sehr komisch, dass bei dir die Daten 'hintereinander' geplottet werden. Da *kann* also irgend etwas nicht stimmen. (Vorausgesetzt die Zeiträume überlappen sich wirklich).