我遇到了一个树状图序列的对齐问题,一个接一个,我不知道如何解决它。问题如下图所示。如图所示,图形没有水平对齐,或者它们的大小不一样。这些图是通过pgfplots
和subfig
包制作的。用于生成它们的代码在本文的末尾。欢迎任何帮助!!!
附言:我不确定问题是否真的是图形不对齐,或者是图形的大小可能不同。
\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}