我尝试使用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}