在以下示例中,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}
答案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}