如何使 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}

在此处输入图片描述

相关内容