我正在使用与此 MWE 类似的设置:
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-2:2,mark=x] {sin(deg(x)))};
\pgfplotsextra{
\draw[red,->,>=latex] (axis cs:-1,0) to (axis cs:0.1,0);
% in reality there are more commands here
}
\end{axis}
\end{tikzpicture}
\end{document}
这段代码似乎绘制在线条之上,而不是标记之上,这里是放大的版本
但我想在线条和标记上方绘图。该如何实现?
答案1
您可以通过更改标记层来实现这一点,例如这个答案。
\documentclass{article}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[set layers, mark layer=axis tick labels]
\addplot[domain=-2:2,mark=x] {sin(deg(x)))};
\pgfplotsextra{
\draw[red,->,>=latex] (axis cs:-1,0) to (axis cs:0.1,0);
% in reality there are more commands here
}
\end{axis}
\end{tikzpicture}
\end{document}
但是,\pgfplotsextra
不应该用于绘制路径,并且在足够新的 pgfplots 版本中您不需要它axis cs:
,并且您可以全局设置它,例如通过说\pgfplotsset{set layers, mark layer=axis tick labels}
。
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.16,set layers, mark layer=axis tick labels}
\begin{document}
\begin{tikzpicture}
\begin{axis}
\addplot[domain=-2:2,mark=x] {sin(deg(x)))};
\draw[red,->,>=latex] (-1,0) to (0.1,0);
\end{axis}
\end{tikzpicture}
\end{document}