pgfplots mit zwei Ordinaten -> falsche Pos. Achsenbeschri

Fragen und Probleme, die nicht den obigen Kategorien zugeordnet werden können


tikzer

pgfplots mit zwei Ordinaten -> falsche Pos. Achsenbeschri

Beitrag von tikzer »

Hiho!

Wenn ich mit pgfplots, entsprechend dem Manual, einen Plot mit zwei Ordinaten darstellen möchte, gibt es ein kleine Problem mit der Position der zweiten y-Achsenbeschriftung. Das Minimalbsp. sollte das Problem veranschaulichen:
\documentclass[tikz
			  ]{standalone}

\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
	\pgfplotsset{set layers}
	\begin{axis}[
				 scale only axis,
				 xmin=-5,xmax=5,
				 ymin=-2,ymax=30,
				 axis y line*=left,
				 grid=major,
				 xlabel=x,
				 ylabel=y1]
		\addplot {x^2};
	\end{axis}
	
	\begin{axis}[
				scale only axis,
				xmin=-5,xmax=5,
				 ymin=-2,ymax=30,
				axis y line*=right,
				axis x line=none,
				ylabel=y2]		
	\end{axis}
\end{tikzpicture}

\end{document}
Das Problem scheint an den unterdrückten Pfeilspitzen der Achsen zu liegen (* bei axis y line). Lösche ich diesen Stern, dann funktioniert die Positionierung, aber dann habe ich die Pfeilspitzen an den Achsen und die müssen da weg.

Gibt es da eine Lösung oder einen Workaround?

Danke und Gruß
tikzer

PS: Ich nutze das aktuellste Mactex mit den, laut TexLive Utility, aktuellsten Paketen.

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

Beitrag von esdd »

Dann musst Du pgfplots auch gleich als erstes sagen, dass Du die aktuellen Möglichkeiten nutzen möchtest:
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
Infos zu compat und anderen möglichen Werten dafür findest Du in der Doku und unter Was bedeutet die Kompatibilitätsangabe ...?.

Darüber hinaus würde ich noch die Einstellungen, die für beide axis Umgebungen gleich sind, gemeinsam vornehmen.
\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}% <- wichtig, siehe auch http://texwelt.de/wissen/fragen/19163
\begin{document} 
\begin{tikzpicture} 
    \pgfplotsset{
        set layers,
        every linear axis/.style={
              scale only axis, 
              xmin=-5,xmax=5, 
              ymin=-2,ymax=30
        }
    }
    \begin{axis}[ 
              axis y line*=left, 
              grid=major, 
              xlabel=x, 
              ylabel=y1] 
       \addplot {x^2}; 
    \end{axis} 
    \begin{axis}[ 
             axis y line*=right, 
             axis x line=none, 
             ylabel=y2]       
    \end{axis} 
\end{tikzpicture} 
\end{document} 

tikzer

Beitrag von tikzer »

ahhh, das habe ich total übersehen! Vielen Dank, nun läufts!

Antworten