使用轴描述 cs 在 pgfplots 中定位轴标签

使用轴描述 cs 在 pgfplots 中定位轴标签

在以下示例中,x 轴标签和节点在轴描述 cs 中具有相同的坐标。为什么它们被放置在不同的位置?标签定位究竟是如何工作的?

\documentclass{standalone}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
 \begin{axis}[xmin=0.75, xmax=2.25, ymin=1, ymax=1.3, x label style={at={(axis description cs:1.05,1)}}, xlabel={$k$}, clip=false]
  \node at (axis description cs:1.05,1) {$k$};
 \end{axis}
\end{tikzpicture}

\end{document}

MWE 的输出

答案1

原则上你是对的,但是x label style 附加将选项替换为已给出的选项。而且看起来默认样式(当未compat给出级别时)使用负数yshift(以及另一个anchor)。因此,要给出“未附加”样式,请使用every axis x label/.style可获得预期结果的样式。

(或者,您也可以至少使用compat=1.3更改默认值x label style,然后真正“仅”再次使用该样式附加内容,即x label style。为此,请参阅代码的注释部分。)

% used PGFPlots v1.17
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
%    \pgfplotsset{compat=1.3}
\begin{document}
\begin{tikzpicture}
    \begin{axis}[
        xmin=0.75,
        xmax=2.25,
        ymin=1,
        ymax=1.3,
        every axis x label/.style={
            at={(axis description cs:1.05,1)},
        },
%        x label style={
%            at={(axis description cs:1.05,1)},
%            anchor=center,
%        },
        xlabel={$k$},
        clip=false,
    ]
        \node [text=red] at (axis description cs:1.05,1) {$k$};
    \end{axis}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容