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

Tabellen und Grafiken erstellen und anordnen


hans

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

Beitrag 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

Mac-Cherony
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Sa 30. Apr 2011, 11:39

Beitrag 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ß

hans

Beitrag 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

Mac-Cherony
Forum-Anfänger
Forum-Anfänger
Beiträge: 48
Registriert: Sa 30. Apr 2011, 11:39

Beitrag 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.

Kati

Beitrag von Kati »

Hallo,
vielleicht kann Christian Feuersänger etwas dazu sagen, er ist auch hier im Forum aktiv.
Gruüße, Kati

feuersaenger
Forum-Fortgeschrittener
Forum-Fortgeschrittener
Beiträge: 91
Registriert: Mi 5. Okt 2011, 18:24
Wohnort: Rheinbach

Beitrag 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

Antworten