Как выровнять легенду PGFplots по верхнему краю точно вровень с осью

Как выровнять легенду PGFplots по верхнему краю точно вровень с осью

Моя цель — выровнять поле легенды по верхнему краю графика так, чтобы оно точно совпадало с рамкой верхней оси.

Следующий MWE работает нормально на первый взгляд, но если присмотреться, то можно заметить небольшое вертикальное смещение (см. изображение). Увидев его однажды, его уже не развидеть.

\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}

пример неожиданного смещения между осью и полем легенды

Я знаю из других ответов, что легенда — это матрица TikZ. Я знаю о возможности позиционировать легенду с помощью координат (ось cs или иная). Но даже при использовании жестко закодированного позиционирования, как в следующем примере, границы не выстраиваются точно.

    \begin{axis}[
        legend style={
            at={(axis cs:2.6,2.1)}
        },
        ymax=2.1
    ]

Я использую установку TeX Live 2019, если это актуально.

решение1

Добро пожаловать в TeX.SE. Добавление outer sep = 0ptстиля к вашей легенде может быть подходящим решением.

Я добавил код, который размещает легенду вровень с границей холста и который предполагает, что верх холста и легенда выровнены при outer sep=0ptдобавлении к стилю.

\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}

введите описание изображения здесь

Связанный контент