Diagramm mit pgfplots: Problem mit Extra Ticks und Skala?

Tabellen und Grafiken erstellen und anordnen


KloBoBBerLe
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Mo 27. Apr 2015, 13:33

Diagramm mit pgfplots: Problem mit Extra Ticks und Skala?

Beitrag von KloBoBBerLe »

Liebe Leser,

woran liegt es denn, dass ich bei Anfertigung des folgenden Diagramms laufend diese Fehlermeldung erhalte?
Runaway argument?
\pgfplots@calender@ZEROSHIFT \relax \ifx \pgfplotstemptime \pgfutil@empty \ETC.
! File ended while scanning use of \pgfcalendar@datetojulian.
<inserted text> 
                \par 
Funktionsfähiges Minimalbeispiel:
Minimalbeispiel
\documentclass[]{report}

\usepackage[utf8]{inputenc}
\usepackage{pgfplots}

 \usepgfplotslibrary{dateplot}
 \pgfplotsset{compat=newest}

\begin{document}
	\begin{tikzpicture}
		\begin{axis}[
				% Diagrammtitel:
					  title={Testdiagramm},
				% Abmessungen:
						width = 0.9\textwidth,
						height = 0.5\textheight,
				% Formatierung der Abszisse:
						xlabel = {Datum},
						date coordinates in = x,
						xmin = 1985-01-01,
						xmax = 1985-12-31,
						date ZERO = 1985-01-01,
						try min ticks = 24,
						enlarge x limits = 0.01,
						x tick label style = {anchor=east, rotate=45, font=\tiny, /pgf/number format/1000 sep=},
				% Formatierung der Y-Achse:
						ylabel = {Wert},
						ytick = {1,2,3,4,5,6},
						yticklabels = {Test},
						y tick label style = {/pgf/number format/1000 sep=},
				% Extra-Hilfslinien,
					   extra y ticks = {0.133049, 6.184995},
						extra y tick labels={{0.133049},{6.184995}},
						extra tick style = {grid=major, tick label style={xshift=-1cm}},
			]
				\addplot table[x=Datum, y=Wert] {Wertetabelle.txt};
		\end{axis}
	\end{tikzpicture}
\end{document}
[/m]


Wenn ich den Befehl...
ytick={1,2,3,4,5,6}
... mit einer zusätzlichen Klammer ( ] ) versehe, dann werden zwar die Achsenwerte angezeigt, doch die Extra Ticks noch immer nicht...

Wo ist mein Denkfehler?

Besten Dank für Eure Hilfe! :)

Viele Grüße
KloBoBBerLe
Zuletzt geändert von KloBoBBerLe am Di 5. Mai 2015, 18:57, insgesamt 1-mal geändert.

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Re: Diagramm mit pgfplots: Problem mit Extra Ticks und Skala

Beitrag von esdd »

Ich bekomme mit Deinem Code einen anderen Fehler
! Package pgfplots Error: Could not read table file 'Wertetabelle.txt'.
und aus dem gleichen Grund noch eine Warnung
Package pgfplots Warning: the current plot has no coordinates (or all have been
filtered away) on input line 37.
Das ist dann auch der Grund, weshalb bei mir nicht die Ticks bei 1,2,...,6 gezeichnet werden und am Tick bei 1 nicht Test steht.

Um das Koordinatensystem auch ohne Daten zu erhalten, muss ich ymin und ymax vorgeben.
\documentclass[]{report} 

\usepackage[utf8]{inputenc} 
\usepackage{pgfplots} 

  \usepgfplotslibrary{dateplot} 
  \pgfplotsset{compat=newest} 

\begin{document} 
    \begin{tikzpicture} 
       \begin{axis}[ 
             % Diagrammtitel: 
                  title={Testdiagramm}, 
             % Abmessungen: 
                   width = 0.9\textwidth, 
                   height = 0.5\textheight, 
             % Formatierung der Abszisse: 
                   xlabel = {Datum}, 
                   date coordinates in = x, 
                   xmin = 1985-01-01, 
                   xmax = 1985-12-31, 
                   date ZERO = 1985-01-01, 
                   try min ticks = 24, 
                   enlarge x limits = 0.01, 
                   x tick label style = {anchor=east, rotate=45, font=\tiny, /pgf/number format/1000 sep=}, 
             % Formatierung der Y-Achse: 
                   ymin=0,ymax=7,
                   ylabel = {Wert}, 
                   ytick = {1,...,6}, 
                   yticklabels = {Test}, 
                   y tick label style = {/pgf/number format/1000 sep=}, 
             % Extra-Hilfslinien, 
                   extra y ticks = {0.133049, 6.184995}, 
                   extra y tick labels={{0.133049},{6.184995}}, 
                   extra tick style = {grid=major, tick label style={xshift=-1cm}}, 
          ] 
             \addplot table[x=Datum, y=Wert] {Wertetabelle.txt}; 
       \end{axis} 
    \end{tikzpicture} 
\end{document}
und erhalte das mit diesem Code erwartete Ergebnis

Bild

Allerdings vermute ich, dass Du noch ein anderes Problem hast.


Gruß
Elke
Dateianhänge
gl_yachse.png
gl_yachse.png (10.96 KiB) 1562 mal betrachtet

KloBoBBerLe
Forum-Anfänger
Forum-Anfänger
Beiträge: 11
Registriert: Mo 27. Apr 2015, 13:33

Beitrag von KloBoBBerLe »

Hallo Elke,

herzlichen Dank für Deine schnelle Antwort! :)
esdd hat geschrieben:Ich bekomme mit Deinem Code einen anderen Fehler
! Package pgfplots Error: Could not read table file 'Wertetabelle.txt'.
Das liegt daran, dass Du die Datei Wertetabelle.txt gar nicht vorliegen hast - folglich kann LaTeX auch nicht darauf zurückgreifen... ;)

Hier noch der benötigte Text, den Du einfach als Wertetabelle.txt im Verzeichnis des Minimalbeispiels abspeichern kannst (denn dann können die Daten eingebunden werden):
Datum		Wert
1985-01-01	0.177912
.
.
.
.
1985-12-31	0.235618
esdd hat geschrieben:Allerdings vermute ich, dass Du noch ein anderes Problem hast.
Da obiges Beispiel nun funktionieren sollte besteht in der Tat noch das eigentliche Hauptproblem... ;) Leider werden nämlich die Y-Achsen-Beschriftungen nur angezeigt, wenn ich die Extra-Y-Ticks nicht anzeigen lasse... Warum ist das so, und wie kann ich beide Beschriftungen anzeigen lassen?


Nachtrag:

Problem gelöst! Die Anweisung yticklabels verträgt sich scheinbar nicht mit Extra Ticks... Wenn ich diese Anweisung jedoch entferne funktioniert alles wie gewünscht!


Besten Dank und viele Grüße! :)
KloBoBBerLe

esdd
Forum-Meister
Forum-Meister
Beiträge: 2561
Registriert: So 7. Feb 2010, 16:36

Beitrag von esdd »

KloBoBBerLe hat geschrieben: Die Anweisung yticklabels verträgt sich scheinbar nicht mit Extra Ticks...
Das stimmt nicht. Du kannst sowohl yticklabels als auch Extraticks vorgeben:
\begin{filecontents}{Wertetabelle1.txt}
 Datum      Wert 
 1985-01-01   0.177912
 1985-06-07   6.184995 
\end{filecontents}

\documentclass[]{report}


\usepackage[utf8]{inputenc} 
\usepackage{pgfplots} 

\usepgfplotslibrary{dateplot} 
\pgfplotsset{compat=newest} 

\begin{document}
Die verwendete pgfplots-Version ist \pgfplotsversion \par

    \begin{tikzpicture} 
       \begin{axis}[ 
             % Diagrammtitel: 
                  title={Testdiagramm}, 
             % Abmessungen: 
                   width = 0.9\textwidth, 
                   height = 0.5\textheight, 
             % Formatierung der Abszisse: 
                   xlabel = {Datum}, 
                   date coordinates in = x, 
                   xmin = 1985-01-01, 
                   xmax = 1985-12-31, 
                   date ZERO = 1985-01-01, 
                   try min ticks = 24, 
                   enlarge x limits = 0.01, 
                   x tick label style = {anchor=east, rotate=45, font=\tiny, /pgf/number format/1000 sep=}, 
             % Formatierung der Y-Achse: 
                   ylabel = {Wert}, 
                   ytick = {1,...,6}, 
                   yticklabels = {a,b,c,d,e,f}, 
                   y tick label style = {/pgf/number format/1000 sep=}, 
             % Extra-Hilfslinien, 
                   extra y ticks = {0.133049, 6.184995}, 
                   extra y tick labels={{0.133049},{6.184995}}, 
                   extra tick style = {grid=major, tick label style={xshift=-1cm}}, 
          ] 
             \addplot table[x=Datum, y=Wert] {Wertetabelle1.txt}; 
       \end{axis} 
    \end{tikzpicture} 
\end{document}
Mit der pgfplots Version 1.12.1 erhalte ich

Bild

Du kannst auch auf "Öffne mit Online-Editor" klicken. Dann siehst Du derzeit das Ergebnis, dass man mit der etwas älteren Version 1.10 erhält.

Gruß
Elke

PS: An meinem Beispiel oben kannst Du auch sehen, wie ein lauffähiges MWE mit Daten aussehen kann.
Dateianhänge
gl_yachse1.png
gl_yachse1.png (15.9 KiB) 1553 mal betrachtet

Antworten