绘制 pgf 图后,将其(在某一层上)移至同一轴上的另一个图后面?

绘制 pgf 图后,将其(在某一层上)移至同一轴上的另一个图后面?

我已经看到了在 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}

它会产生类似这样的结果:

测试_pdf

...放大evince

zoom_evince

这里的问题是:

  • 即使cos应该在“后”层绘制 - 其笔触(红色)仍然位于sin(蓝色)上方
  • 如果我使用\pgfsetlayers{back,front},而不是{back,main,front}- ,我会得到一个空白的输出;这可能意味着图表main无论如何都会被绘制(分层由 addplot 命令的顺序控制),因此绘制backfront图层会失败
  • \addplot显示了 s - 但是,环境\filldraw中的 saxis却没有

在环境中的 pgf 图中,是否可以以这种意义使用分层axis

相关内容