grouplot 中的 Pgfplots y 标签样式

grouplot 中的 Pgfplots y 标签样式

出于某种原因,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}

在此处输入图片描述

相关内容