如果 groupplot 与设置图层和顶部的轴相结合,则 pgfplots 中的刻度会消失

如果 groupplot 与设置图层和顶部的轴相结合,则 pgfplots 中的刻度会消失

我尝试使用set layers来获取刻度标签后面的网格,axis on top=true并将轴置于绘图线的顶部。如果我在 a 中使用这些设置,则它们及其标签groupplot都不ticks可见。额外的网格线也丢失了。

有人能告诉我这是一个错误还是可以按预期工作以及如何获得我想要的东西。

以下是 MWE:

\documentclass[]{scrartcl}

\usepackage[utf8]{inputenc}


\usepackage{pgfplots,tikz}
\pgfplotsset{compat=newest}
\usetikzlibrary{pgfplots.groupplots}

\begin{document}

\begin{figure}[tbch]
    \centering
    \begin{tikzpicture}
        \begin{groupplot}
        [   group style={
                  group name=my plots,
                  group size=1 by 1},
            set layers,
            axis on top=true,
        ]
            \nextgroupplot[
                    extra x ticks       = {-1,0,1},
                    extra x tick labels = {},
                    extra x tick style  = { grid = major, 
                                            major grid style 
                                                 = {thick, black!25!white, 
                                                   dashed}}
            ]
                \addplot{ x^2 };
        \end{groupplot}
    \end{tikzpicture}
    \end{figure}

\end{document}

答案1

你不需要使用set layers就能得到你想要的东西。只要axis on top它本身就足够了,并且axis on top它本身就设置了层。

在此处输入图片描述

我把网格设为黑色只是为了说明。

如果你坚持使用,set layers请将其放在\begin{tikzpicture}类似

\begin{tikzpicture}
\pgfplotsset{set layers}

但对于这个特殊情况,它的作用不大。你必须定义一个新的层来实现你的目标,然后使用它。

一定要记住,set layers不能在本地组内使用,例如。请参阅手册groupplot第 354 页的限制。pgfplots

\documentclass[]{scrartcl}

\usepackage[utf8]{inputenc}


\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\usetikzlibrary{pgfplots.groupplots}


\begin{document}

\begin{figure}[tbh]   %% no c option valid
    \centering
    \begin{tikzpicture}
    %\pgfplotsset{set layers}   %% <---- put here
        \begin{groupplot}
        [   group style={
                  group name=my plots,
                  group size=1 by 1},
            axis on top=true,
        ]
            \nextgroupplot[
                    extra x ticks       = {-1,0,1},
                    extra x tick labels = {},
                    extra x tick style  = { grid = major,
                                            major grid style
                                                 = {thick, black,
                                                   dashed}},
             ]
                \addplot{ x^2 };
        \end{groupplot}
    \end{tikzpicture}
    \end{figure}

\end{document}

相关内容