外部图形 + 轴 + 附加图

外部图形 + 轴 + 附加图

我的问题与 pgfplots 中的图层顺序有关。我有 3 层:

  1. 外部图形,包括\addplot graphics
  2. 轴网格和刻度
  3. 额外的“箭筒”绘图来自\addplot

我希望看到(1-2-3)层序列(外部图形是底层)。

如果我不做任何特别的事情,我可以得到(2-1-3),

(1-3-2)如果我使用axis on top

\pgfplotsset{set layers}几乎可以完成工作,但轴架仍然在外部图形下,

最后我发现(1-2-3)是可行的,但需要使用两个axis环境。

那么,产生所需的(1-2-3)层序列的最佳方法是什么?

以下是代码示例:

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{pgfplots}

\begin{document}

\begin{tikzpicture}
%\pgfplotsset{set layers}

\begin{axis}[
grid=both,
enlargelimits=false,
axis on top
]

\addplot graphics [xmin=0,xmax=1,ymin=0,ymax=1] {demo};

\addplot [thick,yellow,
quiver={u=\thisrow{u},v=\thisrow{v},update limits=false},-stealth] 
table
{
    x y u v
    0.4 0.5 0 0.1
};

\end{axis}
\end{tikzpicture}

\end{document}

答案1

图书馆backgrounds帮助:

\usetikzlibrary{backgrounds}
...
\addplot[on background layer] graphics ...

完整示例(不包含axis on top且包含更多当前行):

\documentclass{article}
\usepackage[demo]{graphicx}
\usepackage{pgfplots}
\usetikzlibrary{backgrounds}

\begin{document}
\begin{tikzpicture}
\begin{axis}[
  grid=both,
  grid style={semithick, white},
  tick style={semithick, white},
  enlargelimits=false,
]

\addplot[on background layer] graphics [xmin=0,xmax=1,ymin=0,ymax=1] {demo};

\addplot [ultra thick, yellow,
  quiver={u=\thisrow{u},v=\thisrow{v},update limits=false},-stealth]
table
{
    x y u v
    0.4 0.5 0 0.1
};
\end{axis}
\end{tikzpicture}
\end{document}

结果

因此,图像位于背景中,随后是带有网格的轴心,顶部是“箭筒”图形。

相关内容