PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Diagrammlegende mit pgfplots



J0Sch
13-03-2010, 20:36
n Abend,

ich überlege mir gerade ob ich in meiner Diplomarbeit Diagramme mit Latex (pgfplots) zeichne, oder ob ich doch lieber den einfacheren Weg über Excel gehe...

zum testen habe ich jetzt versucht ein älteres Diagramm mit pgfplots nach zubauen. Leider habe ich Probleme mit der Legende. Ich würde die Legenden der beiden Plots gerne nebeneinander oberhalb des Diagramms haben. Dummerweise wird die Position der Legende global eingestellt, so dass beide Legenden übereinander liegen. Ich sehe keine Möglichkeit das zu ändern...

Also die 2. Legende sollte einfach bei bei z.B. (0.5,1.02) starten. Oder noch besser "style={at={(1,1.02)},anchor=south east,"

also hoffentlich versteht ihr mein Problem :) der code sollte im Notfall helfen

viele Grüße,
Josch



\documentclass[11pt, oneside, a4paper]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
width=0.8\textwidth,
height=0.5\textwidth,
compat=newest,
every axis legend/.append style={at={(0,1.02)},anchor=south west, % Position der Legende in diesem Fall untere linke Ecke bei x=0% und y=100%
cells={anchor=west}}, % Position der Beschriftung innerhalt der Legende (east, center, west)
title style={at={(0.5,1.15)}} % Position der Überschrift
}

\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
[
scale only axis,
xmin=0, xmax=100,
ymin=0, ymax=30,
axis y line=left,
xlabel=bla\lbrack N\rbrack,
ylabel=blub\lbrack gew. \%\rbrack,
title=\textbf{Notwendige bla über blub}
]
\addplot+[color=blue,only marks]
coordinates{
(20,0)
(30,5.62)
(40,6.39)
(50,8.46)
(60,9.64)
(88,24.45)
};
\addplot[mark=,color=blue,domain=1:100]
{0.3282*x-6.599};
\legend{bla,blub (l. Regression)}
\end{axis}
\begin{axis}
[
scale only axis,
xmin=0, xmax=100,
ymin=100, ymax=600,
axis y line=right,
axis x line=none,
ylabel=Schichtdicke \lbrack nm\rbrack
]
\addplot+[color=red, mark=diamond*, only marks]
coordinates{
(20,330)
(30,550)
(40,354)
(50,430)
(60,400)
(80,380)
};
\addplot[mark=,color=red,domain=1:100,style=dashed]
{-0.3808*x+425.61};
\legend{Schichtdicke, Schichtdicke (l. Regression)}
\end{axis}
\end{tikzpicture}
\caption{ein tolles Diagramm mit LaTeX}
\end{figure}

\end{document}

Syralist
14-03-2010, 09:09
Du kannst die Legende für jede axis-Umgebung einzeln formatieren:


\documentclass[11pt, oneside, a4paper]{scrartcl}

\usepackage[latin1]{inputenc}
\usepackage[ngerman]{babel}
\usepackage{pgfplots}
\pgfplotsset{
width=0.8\textwidth,
height=0.5\textwidth,
%compat=newest,
%every axis legend/.append style={at={(0,1.02)},anchor=south west, % Position der Legende in diesem Fall untere linke Ecke bei x=0% und y=100%
%cells={anchor=west}},% Position der Beschriftung innerhalt der Legende (east, center, west)
title style={at={(0.5,1.15)}}% Position der Überschrift
}

\begin{document}

\begin{figure}
\centering
\begin{tikzpicture}
\begin{axis}
[
scale only axis,
xmin=0, xmax=100,
ymin=0, ymax=30,
axis y line=left,
xlabel=bla\lbrack N\rbrack,
ylabel=blub\lbrack gew. \%\rbrack,
title=\textbf{Notwendige bla über blub},
legend style={at={(0,1.02)},anchor=south west,cells={anchor=west}},
]
\addplot+[color=blue,only marks]
coordinates{
(20,0)
(30,5.62)
(40,6.39)
(50,8.46)
(60,9.64)
(88,24.45)
};
\addplot[mark=,color=blue,domain=1:100]
{0.3282*x-6.599};
\legend{bla,blub (l. Regression)}
\end{axis}
\begin{axis}
[
scale only axis,
xmin=0, xmax=100,
ymin=100, ymax=600,
axis y line=right,
axis x line=none,
ylabel=Schichtdicke \lbrack nm\rbrack,
legend style={at={(1,1.02)},anchor=south east,cells={anchor=west}},
]
\addplot+[color=red, mark=diamond*, only marks]
coordinates{
(20,330)
(30,550)
(40,354)
(50,430)
(60,400)
(80,380)
};
\addplot[mark=,color=red,domain=1:100,style=dashed]
{-0.3808*x+425.61};
\legend{Schichtdicke, Schichtdicke (l. Regression)}
\end{axis}
\end{tikzpicture}
\caption{ein tolles Diagramm mit LaTeX}
\end{figure}

\end{document}

J0Sch
14-03-2010, 16:36
hi,

und vielen Dank, ich hab versucht bei \legend Optionen einzustellen. Das hat natürlich nicht geklappt :)

Gruß Josch