Seite 1 von 1

pgfplot | x-Achse mit Datum und Zeit aus Datei einlesen

Verfasst: Fr 17. Feb 2012, 16:39
von hans
Hallo,

ich versuche gerade eine Datenfile für einen plot einzulesen. Bis dato hatte ich es leider noch nicht mit Datums- bzw. Zeitangaben bzw. deren Kombinationen für die Skalierung der x-Achse zu tun. Mein Ansatz, siehe folgendem Minimalbeispiel funktioniert leider noch nicht.
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{verbatim}
\usepgfplotslibrary{dateplot} 
\pgfplotsset{compat=1.3, axis line style={ultra thin}, tick style={ultra thin,black}, major tick length={0.1cm}, minor tick length={0.06cm}, xlabel near ticks, ylabel near ticks}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
\begin{document}
\thispagestyle {empty}

\begin{tikzpicture}
\begin{axis}[
date coordinates in=x,
xticklabel={\day.\month.\year},
yticklabel={\theta [${}^\circ$C]},
x tick label style={align=center},
xmin={01.01.2008 00:00}, 
xmax={31.12.2008 23:55},
]
\addplot file[col sep=tab,x=date,y=temperature]{test.txt}
\end{axis}
\end{tikzpicture}
\end{document}


Hab schon ein paar Sachen durchprobiert, allerdings bekomme ich ständig die Fehlermeldung:
Runaway argument?
\pgfplots@calender@ZEROSHIFT \relax \ifx \pgfplotstemptime \pgfutil@empty \ETC.
! Paragraph ended before \pgfcalendar@datetojulian was complete.
<to be read again>
\par


Das Test-File hat folgendes Format:
 date	temperature
01.01.2008 00:00	7
01.01.2008 00:05	7
01.01.2008 00:10	6,8
01.01.2008 00:15	7,3
01.01.2008 00:20	8,1
01.01.2008 00:25	8,1
01.01.2008 00:30	8
01.01.2008 00:35	7,3
01.01.2008 00:40	6,7
01.01.2008 00:45	6,6
01.01.2008 00:50	6,5
01.01.2008 00:55	6,4
01.01.2008 01:00	8,1


Kann jemand helfen oder sagen woran es liegt? Ist das vorliegende Format für Datum und Zeit grundsätzlich nicht zum Einlesen in pgf geeignet?

Danke!
hans

Verfasst: So 19. Feb 2012, 11:44
von Mac-Cherony
Hallo Hans,

nach deinem Minimalbeispiel gehe ich mal davon aus, dass du das pgfplotsmanual zu dem Thema schon befragt hast.

Ich weiß nicht, ob und wie es möglich ist das Eingabeformat für das Datum zu ändern, aber mit den Einstellungen wie du sie verwendest sollte nur das Datumsformat 2008-01-01 00:00 gültig sein.

Gruß

Verfasst: So 19. Feb 2012, 12:43
von hans
Hallo Mac-Cherony!

Ist es an dieser Stelle nicht möglich, das Datumsformat von der ISO-Vorgabe (YYYY-MM-DD hh:mm) auf den vorliegenden spezifischen Fall (DD.MM.YYYY hh:mm) zu ändern? Im TikZ/PGF-manual von Till Tantau (ab S.250) stehen ein paar infos zur Umrechnung zw. julianischen und ISO-Datum. Da müsste das vorliegende Problem doch auch umrechenbar sein, oder?

Viele Grüße
hans

Verfasst: So 19. Feb 2012, 13:12
von Mac-Cherony
Da bin ich konkret leider überfragt. Ich denke schon, dass es möglich ist, aber soweit gehen meine Kenntnisse da leider nicht. Es währe sicherlich die elegantere Lösung alles schon korrekt mit pgfplots einzulesen.
Alternativ würde mir nur noch einfallen, die Daten mit Excel o.ä. zu öffnen, das Datum umzuformatieren und sie wieder als Textdatei zu speichern.

Verfasst: Mo 20. Feb 2012, 10:40
von Kati
Hallo,
vielleicht kann Christian Feuersänger etwas dazu sagen, er ist auch hier im Forum aktiv.
Gruüße, Kati

Verfasst: Mo 20. Feb 2012, 11:42
von feuersaenger
Hallo Hans,

pgfplots unterstuetzt derzeit nur Datumseingaben im ISO-format (wie von Mac-Cherony schon angemerkt).

Darueber hinaus ist zusaetzlich zu beachten:

(a) bei Zahlen erwartet pgfplots den Punkt anstelle eines komma, d.h. die temperaturspalte muesste auch umformatiert werden

(b) Verwende besser \addplot table[...] anstelle von \addplot file: file input verwendet immer nur whitespace als trenner.

Mit liebem Gruss

Christian