将分组图的 ylabel 对齐到一条公共线上

将分组图的 ylabel 对齐到一条公共线上

我使用groupplotspgfplots将多个图堆叠在一起。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}

在此处输入图片描述

现在运行版本已经不重要了。

相关内容