Matlab2tikz,子图 ylabel 的对齐(与图的距离较大)

Matlab2tikz,子图 ylabel 的对齐(与图的距离较大)

Matlab2tikz 在过去的一个月引起了我的注意,并且一直在使用HowToTeX 的简单教程。到目前为止,它运行良好,只剩下一个问题,我无法将 锚定ylabelyaxis

我使用 matlab 绘制多个子图(例如 3x3),并使用 matlab2tikz 获取.tikz 输入文件。我使用的代码类似于:

\begin{figure} [H]
  \scriptsize
  \centering 
  \setlength\figureheight{3cm}
  \setlength\figurewidth{3cm}
  \input{fig_matlab2tikz.tikz}
  \caption{A great subplot.} 
  \label{fig:matlabfigure} 
  \normalsize
\end{figure}

距离ylabel图太远,所以看起来属于ylabel左侧的子图。我尝试使用以下代码将标签移近,但没有任何变化。

\pgfplotsset{
  /pgfplots/xlabel near ticks/.style={
    /pgfplots/every axis x label/.style={
      at={(ticklabel cs:3)},anchor=near ticklabel}},
    /pgfplots/ylabel near ticks/.style={
      /pgfplots/every axis y label/.style={
        at={(ticklabel cs:3)},rotate=90,anchor=near ticklabel}}}

答案1

我不确定这是否有用,但我遇到了类似的问题。我通过将其放入文档序言中解决了这个问题:

\pgfplotsset{compat=newest}

来源

答案2

我本来想对 vipers36 的回答进行评论,但我没有这方面的声誉。

无论如何,他的回答对我没有直接作用,但经过反复试验后,我发现以下方法对我有用:

\begin{axis}[
...,
ylabel style={yshift=-10pt}
]

或者在 matlab 中:

matlab2tikz(...,'extraAxisOptions','ylabel style={yshift=-10pt}');

也许这取决于版本,但对我来说,添加风格,将移位放入花括号中并使用y 轴偏移而不仅仅是转变。

答案3

ylabel style您可以通过在 .tex 文件中向轴添加键来移动 y 标签:

\begin{axis}[
    ...,
    ylabel shift={-10pt}
]

extraAxisOptions您可以直接从 matlab 将其作为matlab2tikz传递来完成此操作:

matlab2tikz(...,'extraAxisOptions','ylabel shift={-10pt}');

因此,您不必在每次重新绘图时修改 .tex 文件

相关内容