我使用groupplots
库pgfplots
将多个图堆叠在一起。y tick label
两个图的 宽度不同,因为图的 y 轴的比例不同。只要我不设置\pgfplotsset{compat=1.6}
,pgfplots
就不会考虑y tick label
的宽度,而是打印ylabel
刻度标签的右侧。当我激活该compat=1.6
选项时,放置标签时会考虑刻度标签的大小,但在这种情况下(参见下面的 MWE),ylabel 是相对于相关图的刻度标签放置的,因此两个图的标签与整个图组边界的距离不同。
是否有一个简单的命令来将 ylabel 对齐到一条公共垂直线上,而不是将它们每个相对于各自的图对齐?
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.6}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}
[group style={group size = 1 by 2}]
\nextgroupplot[ylabel = Text]
\addplot coordinates {(0,0) (1,0.1)};
\nextgroupplot[ylabel=Text]
\addplot coordinates {(0,0) (1,2)};
\end{groupplot}
\end{tikzpicture}
\end{document}
答案1
您可以根据需要every axis y label
增加值来重新定义样式。xshift
\documentclass{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.6,
ylabsh/.style={every axis y label/.style={at={(0,0.5)}, xshift=#1, rotate=90}}}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}
[group style={group size = 1 by 2}, ylabsh=-5em]
\nextgroupplot[ylabel = Text]
\addplot coordinates {(0,0) (1,0.1)};
\nextgroupplot[ylabel=Text]
\addplot coordinates {(0,0) (1,2)};
\end{groupplot}
\end{tikzpicture}
\end{document}
现在运行版本已经不重要了。