如同这个问题我想对齐组图的 y 标签。样式
ylabel absolute, y label/.append style={yshift=0em},
可以解决问题,因此我想将其应用于每个组图。但是,我不太了解 tikz/pgfplots 中发生的设置类别问题。我尝试了下面代码的许多变体,它们都编译得很好,但没有效果。有人能指出我如何处理每个组图并将上面的行附加到样式中吗?*也许指出如何一般地做到这一点(在哪里可以找到子类别等)?
基本上,我尝试实现的是一种修改每个组(groupplot?)样式并附加上述 ylabel 绝对定位的方法。所以类似于every axis/ylabel
,但适用于组。(前者不起作用,因为它放错了 3D 图的 ylabel。)
最小不起作用的示例:
\documentclass{article}
\pgfplotsset{compat=newest}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots} % needs to be loaded exactly like this
\pgfplotsset{ /pgfplots/group/.append style = {
ylabel absolute, y label/.append style={yshift=0em},
}
}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=my plots,
group size=1 by 2,
xlabels at=edge bottom,
ylabels at=edge left
},height=4cm, width=4cm]
\nextgroupplot[ylabel={foo},]
\addplot coordinates {(0,0) (-0.1,-0.1) (-0.2,-0.2)};
\nextgroupplot[ylabel={bar},]
\addplot coordinates {(0,2) (1,1) (2,0)};
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
查看库的代码groupplots
,我发现样式/pgfplots/group/every plot
已添加到每个\nextgroupplot
。因此,要仅影响groupplots
环境中的轴,请附加到该样式,例如
\pgfplotsset{/pgfplots/group/every plot/.append style = {
ylabel absolute, y label/.append style={yshift=0em},
}
}
\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.13}
\usepgfplotslibrary{groupplots}
\pgfplotsset{/pgfplots/group/every plot/.append style = {
ylabel absolute, y label/.append style={yshift=0em},
}
}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[
group style={
group name=my plots,
group size=1 by 2,
xlabels at=edge bottom,
ylabels at=edge left
},height=4cm, width=4cm]
\nextgroupplot[ylabel={foo}]
\addplot coordinates {(0,0) (-0.1,-0.1) (-0.2,-0.2)};
\nextgroupplot[ylabel={bar}]
\addplot coordinates {(0,2) (1,1) (2,0)};
\end{groupplot}
\end{tikzpicture}
\begin{tikzpicture}
\begin{axis}[ylabel=abc]
\addplot3 coordinates {(0,0,0)(1,1,1)};
\end{axis}
\end{tikzpicture}
\end{document}