使用 pgfplots 和 subfig 包进行图形对齐的问题

使用 pgfplots 和 subfig 包进行图形对齐的问题

我遇到了一个树状图序列的对齐问题,一个接一个,我不知道如何解决它。问题如下图所示。如图所示,图形没有水平对齐,或者它们的大小不一样。这些图是通过pgfplotssubfig包制作的。用于生成它们的代码在本文的末尾。欢迎任何帮助!!!

附言:我不确定问题是否真的是图形不对齐,或者是图形的大小可能不同。

在此处输入图片描述

\begin{figure}[!htb]
\subfloat[Evolução das posições $x$ e $y$]{
\begin{tikzpicture}
\begin{axis}[
                title={Evolução das posições $x$ e $y$ para diferentes condições iniciais e velocidade de $2$m/s},
                xlabel={Tempo [s]}, ylabel={Erro [m]},
                axis equal,
                grid=major,
                xmin=0, xmax=20,
            ]
\addplot[only marks, mark size=1.0pt, color=blue,] 
         table [x={x}, y={y}, col sep=comma]{chapters/cap3/csv/PIV_0_2_0_20_state.csv};

\addplot[only marks, mark size=1.0pt, color=red,] 
         table [x={x}, y={y}, col sep=comma]{chapters/cap3/csv/PIV_0_2_45_20_state.csv};

\addplot[only marks, mark size=1.0pt, color=green,] 
         table [x={x}, y={y}, col sep=comma]{chapters/cap3/csv/PIV_0_2_90_20_state.csv};
\end{axis}
\end{tikzpicture}
}\label{fig:piv_0_2_20_state}

\subfloat[Evolução do erro previsto $\delta_p$]{
\begin{tikzpicture}
\begin{axis}[
                title={Evolução do erro previsto $\delta_p$ para diferentes condições iniciais e velocidade de $2$m/s},
                xlabel={Tempo [s]}, ylabel={Erro [m]},
                grid=major,
                xmin=0, xmax=20,
            ]
\addplot[only marks, mark size=1.0pt, color=blue,] 
         table [x={time}, y={error}, col sep=comma]{chapters/cap3/csv/PIV_0_2_0_20.csv};

\addplot[only marks, mark size=1.0pt, color=red,] 
         table [x={time}, y={error}, col sep=comma]{chapters/cap3/csv/PIV_0_2_45_20.csv};

\addplot[only marks, mark size=1.0pt, color=green,] 
         table [x={time}, y={error}, col sep=comma]{chapters/cap3/csv/PIV_0_2_90_20.csv};
\end{axis}
\end{tikzpicture}
}\label{fig:piv_0_2_20_error}

\subfloat[Evolução das posições $x$ e $y$]{
\begin{tikzpicture}
\begin{axis}[
                title={Evolução do sinal de controle para diferêntes condições iniciais e velocidade de $2$m/s},
                xlabel={Tempo [s]}, ylabel={Sinal de controle [rad]},
                grid=major,
                xmin=0, xmax=20,
            ]
\addplot[only marks, mark size=1.0pt, color=blue,] 
         table [x={time}, y={sign}, col sep=comma]{chapters/cap3/csv/PIV_0_2_0_20.csv};

\addplot[only marks, mark size=1.0pt, color=red,] 
         table [x={time}, y={sign}, col sep=comma]{chapters/cap3/csv/PIV_0_2_45_20.csv};

\addplot[only marks, mark size=1.0pt, color=green,] 
         table [x={time}, y={sign}, col sep=comma]{chapters/cap3/csv/PIV_0_2_90_20.csv};
\end{axis}
\end{tikzpicture}
}\label{fig:piv_0_2_20_sign}
\caption{Evolução do sinal de controle ao longo do tempo. Em azul, simulação inicianda do estado $(0,1,0^\circ)$ e velocidade de $2$m/s; em vermelho, simulação iniciada do estado $(0,1,45^\circ)$ e velocidade de $2$m/s; em verde simulação iniciada do estado $(0,1,90^\circ)$ e velocidade de $2$m/s.}
\end{figure}

答案1

您的图片宽度不相等。差异 -- 实际上它们非常小 ...) 是由 ytick标签宽度不同引起的。最后一张图片最宽 -- 是由 引起的-0.5。您可以通过扩大图表宽度以使其标题不会超出图表边框(或使用多行标题)和相对于图表左边框定位 y 轴标签来弥补差异:

\documentclass{article}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\usepackage{subfig}
\usepackage[utf8]{inputenc}

\begin{document}
    \begin{figure}[ht]
\pgfplotsset{%axis equal,
             grid=major,
             xmin=0, xmax=22,
             width=15cm, height=5cm,
             every axis y label/.style={at={(-0.06,0.5)},
                rotate=90, anchor=south}
             }

\subfloat[Evolução das posições $x$ e $y$   \label{fig:piv_0_2_20_state}]{
\begin{tikzpicture}
\begin{axis}[
           title={Evolução das posições $x$ e $y$ para diferentes condições iniciais e velocidade de $2$m/s},
           xlabel={Tempo [s]}, ylabel={Erro [m]},
            ]
\addplot[color=blue]  coordinates {(0,0) (20,1)};
\addplot[color=red]   coordinates {(0,2) (20,1)};
\addplot[color=green] coordinates {(0,4) (20,1)};
\end{axis}
\end{tikzpicture}
}

\subfloat[Evolução do erro previsto $\delta_p$  \label{fig:piv_0_2_20_error}]{
\begin{tikzpicture}
\begin{axis}[
        title={Evolução do erro previsto $\delta_p$ para diferentes condições iniciais e velocidade de $2$m/s},
        xlabel={Tempo [s]}, ylabel={Erro [m]},
            ]
\addplot[color=blue]  coordinates {(0,0)  (20,0)};
\addplot[color=red]   coordinates {(0,-1) (20,0)};;
\addplot[color=green] coordinates {(0,-2) (20,0)};;
\end{axis}
\end{tikzpicture}
}

\subfloat[Evolução das posições $x$ e $y$   \label{fig:piv_0_2_20_sign}]{
\begin{tikzpicture}
\begin{axis}[
        title={Evolução do sinal de controle para diferêntes condições iniciais e velocidade de $2$m/s},
        xlabel={Tempo [s]}, ylabel={Sinal de controle [rad]},
            ]
\addplot[color=blue]  coordinates {(0,  0) (20,0)};
\addplot[color=red]   coordinates {(0, .5) (20,0)};;
\addplot[color=green] coordinates {(0,-.5) (20,0)};;
\end{axis}
\end{tikzpicture}
}
\caption{Evolução do sinal de controle ao longo do tempo. Em azul, simulação inicianda do estado $(0,1,0^\circ)$ e velocidade de $2$m/s; em vermelho, simulação iniciada do estado $(0,1,45^\circ)$ e velocidade de $2$m/s; em verde simulação iniciada do estado $(0,1,90^\circ)$ e velocidade de $2$m/s.}
    \end{figure}
\end{document}

在此处输入图片描述

相关内容