Cómo alinear la leyenda de PGFplots exactamente al mismo nivel que el eje

Cómo alinear la leyenda de PGFplots exactamente al mismo nivel que el eje

Mi objetivo es alinear superiormente el cuadro de leyenda con el gráfico para que quede exactamente al mismo nivel que el marco del eje superior.

El siguiente MWE funciona bien a primera vista, pero cuando se mira más de cerca, hay un pequeño desplazamiento vertical (ver imagen). Una vez visto, no puede dejar de verse.

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

ejemplo de desplazamiento inesperado entre el eje y el cuadro de leyenda

Sé por otras respuestas que la leyenda es una matriz TikZ. Soy consciente de la posibilidad de posicionar la leyenda usando una coordenada (eje cs o de otro modo). Pero incluso cuando se utiliza un posicionamiento codificado como el siguiente, los bordes no se alinean exactamente.

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

Estoy usando una instalación de TeX Live 2019 si eso es relevante.

Respuesta1

Bienvenido a TeX.SE. Agregar outer sep = 0ptestilo a su leyenda podría ser una solución adecuada.

Agregué código que coloca la leyenda al ras con el límite del lienzo y que sugiere que la parte superior del lienzo y la leyenda están alineadas cuando outer sep=0ptse agrega al estilo.

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

ingrese la descripción de la imagen aquí

información relacionada