
Mein Ziel besteht darin, die Legendenbox oben mit dem Diagramm auszurichten, sodass sie genau bündig mit dem oberen Achsenrahmen abschließt.
Das folgende MWE funktioniert auf den ersten Blick einwandfrei, aber bei näherem Hinsehen ist ein kleiner vertikaler Versatz zu erkennen (siehe Bild). Einmal gesehen, kann man ihn nicht mehr übersehen.
\documentclass[tikz,margin=10pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
legend pos=outer north east
}
]
\addplot[color=gray!50,mark=x] coordinates {
(1,1)
};
\addlegendentry{Stuff}
\addplot[color=gray,mark=x] coordinates {
(2,2)
};
\addlegendentry{Other stuff}
\end{axis}
\end{tikzpicture}
\end{document}
Aus anderen Antworten weiß ich, dass die Legende eine TikZ-Matrix ist. Mir ist bewusst, dass man die Legende mithilfe einer Koordinate (Achse cs oder anderweitig) positionieren kann. Aber selbst wenn man eine fest codierte Positionierung wie die folgende verwendet, sind die Ränder nicht exakt ausgerichtet.
\begin{axis}[
legend style={
at={(axis cs:2.6,2.1)}
},
ymax=2.1
]
Ich verwende eine TeX Live 2019-Installation, falls das relevant ist.
Antwort1
Willkommen bei TeX.SE. Eine Ergänzung outer sep = 0pt
Ihres Legendenstils könnte eine geeignete Lösung sein.
Ich habe Code hinzugefügt, der die Legende bündig mit der Leinwandgrenze platziert und darauf hinweist, dass die Oberseite der Leinwand und die Legende ausgerichtet sind, wenn outer sep=0pt
sie dem Stil hinzugefügt wird.
\documentclass[tikz,margin=10pt]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
legend style={
outer sep=0pt,
legend pos=outer north east
}
% legend style={
% anchor=north west,
% outer sep=0pt,
% at= {(current axis.north east)},
%}
]
\addplot[color=gray!50,mark=x] coordinates {
(1,1)
};
\addlegendentry{Stuff}
\addplot[color=gray,mark=x] coordinates {
(2,2)
};
\addlegendentry{Other stuff}
\end{axis}
\end{tikzpicture}
\end{document}