出于某种原因,groupplot y 标签似乎非常不愿意设置样式。我该如何
- 旋转 ylabel,
- 将它们稍微移近刻度标签,然后
- 有多行标签
在以下示例中?我尝试了 1,000 种不同的方法来指定 y 标签样式,但没有一种有效。
具体来说,以下 MWE不是工作并产生以下结果:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 2,
xlabels at=edge bottom,
xticklabels at=edge bottom,
vertical sep=0pt
},
width=8cm,
height=3.5cm,
xlabel={Time (s)},
xmin=0, xmax=7,
tickpos=left
]
\nextgroupplot[ymin=-1.5, ymax=1.5, ylabel={$\sin(x)$}, y label/.style={rotate=-90, xshift=.5cm}]
\addplot[domain=0:7] {sin(deg(x))};
\nextgroupplot[ymin=-1.5, ymax=1.5, ylabel={$\cos(x)$}]
\addplot[domain=0:7] {cos(deg(x))};
\end{groupplot}
\end{tikzpicture}
\end{figure}
\end{document}
答案1
我认为这是一种可行的方法。(我在手册中没有找到y label/.style
,所以这可能意味着它不存在,因此没有影响。如果你every axis y label/.style
在轴或组图的参数中使用,它的效果仍然是局部的。)
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\usetikzlibrary{pgfplots.groupplots}
\pgfplotsset{compat=1.16}
\begin{document}
\begin{figure}
\centering
\begin{tikzpicture}
\begin{groupplot}[
group style={
group size=1 by 2,
xlabels at=edge bottom,
xticklabels at=edge bottom,
vertical sep=0pt
},
width=8cm,
height=3.5cm,
xlabel={Time (s)},
xmin=0, xmax=7,
tickpos=left
]
\nextgroupplot[ymin=-1.5, ymax=1.5, ylabel={$\sin(x)$\\ don't despair!},
every axis y label/.style={
at={(ticklabel cs:0.5)},rotate=-90,anchor=center,align=center
}]
\addplot[domain=0:7] {sin(deg(x))};
\nextgroupplot[ymin=-1.5, ymax=1.5, ylabel={$\cos(x)$}]
\addplot[domain=0:7] {cos(deg(x))};
\end{groupplot}
\end{tikzpicture}
\end{figure}
\end{document}