我已经看到了在 pgfplot 中填充路径并推入背景?- 这对我没什么帮助,因为它只是关于axis on top
。我也见过为什么 pgfplots 包会导致 tikz 层消失?- 我不认为我遇到了那个错误,因为我使用的是 pgfplots 1.5.1(并且答案中的示例对我来说是有效的)。
无论如何,这是我的 MWE - 在其中,我希望函数的笔触cos(x)
绘制在笔触后面sin(x)
- 即使是cos(x)
在之后绘制sin(x)
(这是我最终用例的替代品,我想根据图计算一些交点,并将它们绘制在图后面):
\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\pgfdeclarelayer{front}
\pgfdeclarelayer{back}
\pgfsetlayers{back,main,front}
% \pgfsetlayers{back,front}
\begin{tikzpicture}
\begin{axis}
\begin{pgfonlayer}{front}
\filldraw (0.5,0.5)--(1.5,0.5)--(1.5,1.5)--(0.5,1.5)--cycle;
\addplot[name=one,blue,mark=+,domain=1:64] {sin(deg(x))};
\end{pgfonlayer}
\begin{pgfonlayer}{back}
\addplot[name=two,red,mark=+,domain=1:64] {cos(deg(x))};
\filldraw [red] (0,0) --(2,0)--(2,2)--(0,2)--cycle;
\end{pgfonlayer}
\end{axis}
\filldraw [green] (0,0) --(1,0)--(1,1)--(0,1)--cycle;
\end{tikzpicture}
\end{document}
它会产生类似这样的结果:
...放大evince
:
这里的问题是:
- 即使
cos
应该在“后”层绘制 - 其笔触(红色)仍然位于sin
(蓝色)上方 - 如果我使用
\pgfsetlayers{back,front}
,而不是{back,main,front}
- ,我会得到一个空白的输出;这可能意味着图表main
无论如何都会被绘制(分层由 addplot 命令的顺序控制),因此绘制back
或front
图层会失败 \addplot
显示了 s - 但是,环境\filldraw
中的 saxis
却没有
在环境中的 pgf 图中,是否可以以这种意义使用分层axis
?