Eine Legende für Diagramm mit zwei y-Achsen

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


Darcy
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mo 15. Mai 2017, 14:22

Eine Legende für Diagramm mit zwei y-Achsen

Beitrag von Darcy »

Hallo zusammen,

ich bastel gerade an schönen Diagrammen für meine Masterarbeit und inzwischen sieht auch fast alles aus wie gewünscht.
Aber in einem Diagramm habe ich zwei y-Achsenbeschriftungen und entsprechend werden zwei Legenden generiert, die auf einander liegen, wenn man sie nicht manuell verschiebt.
Ich möchte aber eigentlich nur EINE Legende mit den Inhalten bezüglich beider Achsen. Also im untenstehenden Beispiel hätte ich gerne eine Box in der alle drei Beschriftungen über einander stehen wie es bei "test2" und "test3" automatisch der Fall ist.

Vielen Dank für die Hilfe!
Darcy
\documentclass{scrartcl}
 
\usepackage{pgfplots}

\pgfplotsset{compat=newest, legend cell align=left,
every axis legend/.append style={
at={(0.5,-0.25)},
anchor=south}}
 
\begin{document}
\centering
	\begin{tikzpicture}
	
	  \begin{axis}[scale only axis,
			axis y line=left]
 			\addplot[color=red,mark=x] coordinates {
			(2,-2)
			(3,-3)
			(4,-4)};
			\legend{\large{Langer test1}}
			\end{axis}
			
		  \begin{axis}
		  [scale only axis,
			axis y line=right,
			axis x line=none]
			\addplot[color=blue,mark=*] coordinates {
			(2,10)
			(3,20)
			(4,30)};
			\addplot[color=green,mark=*] coordinates {
			(2,20)
			(3,30)
			(4,40)};
			\legend{test2,test3}
		  \end{axis}
		\end{tikzpicture}
\end{document}


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

Beitrag von esdd »

Du kannst mit \label und \ref arbeiten, um die Legende manuell am gewünschten Platz zu erstellen:
\documentclass{scrartcl} 
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usetikzlibrary{matrix}

\begin{document} 
\centering 
\begin{tikzpicture} 
  \begin{axis}[scale only axis, 
      axis y line=left] 
       \addplot[color=red,mark=x] coordinates { 
      (2,-2) 
      (3,-3) 
      (4,-4)};
      \label{plots:langer test1}
  \end{axis} 
  \begin{axis} 
     [scale only axis, 
      axis y line=right, 
      axis x line=none]
      \addplot[color=blue,mark=*] coordinates { 
      (2,10) 
      (3,20) 
      (4,30)};
      \label{plots:test2}
      \addplot[color=green,mark=*] coordinates { 
      (2,20) 
      (3,30) 
      (4,40)};
      \label{plots:test3}
  \end{axis}
  \matrix[
    matrix of nodes,
    draw,
    anchor=north,
    column 1/.style={nodes={anchor=center}},
    column 2/.style={nodes={anchor=west}}
  ] at([yshift=-2.5em]current axis.south)
  {
    \ref{plots:langer test1}&Langer Test\\
    \ref{plots:test2}&Test 2\\
    \ref{plots:test3}&Test 3\\
  };
\end{tikzpicture} 
\end{document}

Darcy
Forum-Newbie
Forum-Newbie
Beiträge: 9
Registriert: Mo 15. Mai 2017, 14:22

Beitrag von Darcy »

Super, danke! :) Hat wunderbar funktioniert!

Antworten