pgfplot 图形的对齐

pgfplot 图形的对齐

我正在尝试将 2 个图表对齐,这是我的 MWE:

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[right=1.5cm,left=1.5cm,top=2.5cm,bottom=2.0cm,headsep=1.2cm,footskip=1.5cm]{geometry} % Márgenes





\begin{document}


\begin{figure}[!htbp]
\begin{tabular}{c c }
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\pgfplotsset{
x coord trafo/.code={\pgfmathparse{#1^0.5}\pgfmathresult},
yticklabel style={/pgf/number format/fixed},
x coord inv trafo/.code={\pgfmathparse{#1^2}\pgfmathresult}}
\begin{axis}[
yticklabel style={/pgf/number format/fixed},
height=7.5cm,
width=7.5cm,
yticklabel style={/pgf/number format/fixed},
xlabel=$t $ (min),
ylabel= {s(t) = $L_{0}-L$ (mm)},
%grid=major,
y dir=reverse,
]
\addlegendentry[font=\tiny]{0,1 kg/cm$^{2}$}
\addplot[black, small,mark=*,mark size=1pt] coordinates {
(0.000001, 0.000)
(0.100, 0.032)
(0.250, 0.032)
(0.500, 0.032)
(1.000, 0.034)
(2.250, 0.034)
(4.000, 0.036)
(6.250, 0.036)
(9.000, 0.037)
(12.250, 0.039)
(16.000, 0.039)
(20.250, 0.040)
(25.000, 0.040)
(40.000, 0.041)
(60.000, 0.043)
(90.000, 0.043)
(120.000, 0.045)
(180.000, 0.048)
(480.000, 0.051)
(1440.000, 0.051)
};
\end{axis}
\end{tikzpicture}
\caption{0.1 kg/cm$^{2}$}
\label{fig:01}
\end{subfigure}
 & 
\begin{subfigure}{0.45\textwidth}
\begin{tikzpicture}
\pgfplotsset{
x coord trafo/.code={\pgfmathparse{#1^0.5}\pgfmathresult},
x coord inv trafo/.code={\pgfmathparse{#1^2}\pgfmathresult}}
\begin{axis}[
height=7.5cm,
width=7.5cm,
xlabel=$t$ (min),
ylabel= {s(t) = $L_{0}-L$ (mm)},
%grid=major,
y dir=reverse,
]
\addlegendentry[font=\tiny]{0,25 kg/cm$^{2}$}
\addplot[red, small,mark=*,mark size=1pt] coordinates {
(0.000001, 0.000)
(0.100, 0.129)
(0.250, 0.159)
(0.500, 0.177)
(1.000, 0.189)
(2.250, 0.204)
(4.000, 0.209)
(6.250, 0.214)
(9.000, 0.219)
(12.250, 0.221)
(16.000, 0.224)
(20.250, 0.227)
(25.000, 0.229)
(40.000, 0.233)
(60.000, 0.238)
(90.000, 0.241)
(120.000, 0.245)
(180.000, 0.249)
(480.000, 0.259)
(1440.000, 0.261)
};
\end{axis}
\end{tikzpicture}
\caption{0.2 kg/cm$^{2}$}
\label{fig:02}
\end{subfigure}
\\
\end{tabular}
\end{figure}




\end{document}

但输出没有对齐。我怀疑这是因为左侧图表的 y 轴格式不同(我尝试更改它但失败了),但后来我意识到情况也不是这样,因为右侧图表的顶部与 $10^{-2}$ 的顶部没有对齐。

有什么方法可以解决这个问题吗?除了表格之外,您还知道其他对齐方法吗?

答案1

为什么不使用可选参数subfigure?在下面的例子中,我选择b(用于底部对齐):

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{caption}
\usepackage{subcaption}
\usepackage[right=1.5cm,left=1.5cm,top=2.5cm,bottom=2.0cm,headsep=1.2cm,footskip=1.5cm]{geometry} % Márgenes

\begin{document}

\begin{figure}
\begin{subfigure}[b]{0.45\textwidth}
\centering
\begin{tikzpicture}
\pgfplotsset{
x coord trafo/.code={\pgfmathparse{#1^0.5}\pgfmathresult},
yticklabel style={/pgf/number format/fixed},
x coord inv trafo/.code={\pgfmathparse{#1^2}\pgfmathresult}}
\begin{axis}[
yticklabel style={/pgf/number format/fixed},
height=7.5cm,
width=7.5cm,
yticklabel style={/pgf/number format/fixed},
xlabel=$t $ (min),
ylabel= {s(t) = $L_{0}-L$ (mm)},
%grid=major,
y dir=reverse,
]
\addlegendentry[font=\tiny]{0,1 kg/cm$^{2}$}
\addplot[black, small,mark=*,mark size=1pt] coordinates {
(0.000001, 0.000)
(0.100, 0.032)
(0.250, 0.032)
(0.500, 0.032)
(1.000, 0.034)
(2.250, 0.034)
(4.000, 0.036)
(6.250, 0.036)
(9.000, 0.037)
(12.250, 0.039)
(16.000, 0.039)
(20.250, 0.040)
(25.000, 0.040)
(40.000, 0.041)
(60.000, 0.043)
(90.000, 0.043)
(120.000, 0.045)
(180.000, 0.048)
(480.000, 0.051)
(1440.000, 0.051)
};
\end{axis}
\end{tikzpicture}
\caption{0.1 kg/cm$^{2}$}
\label{fig:01}
\end{subfigure}\hfill
\begin{subfigure}[b]{0.45\textwidth}
\centering
\begin{tikzpicture}
\pgfplotsset{
x coord trafo/.code={\pgfmathparse{#1^0.5}\pgfmathresult},
x coord inv trafo/.code={\pgfmathparse{#1^2}\pgfmathresult}}
\begin{axis}[
height=7.5cm,
width=7.5cm,
xlabel=$t$ (min),
ylabel= {s(t) = $L_{0}-L$ (mm)},
%grid=major,
y dir=reverse,
]
\addlegendentry[font=\tiny]{0,25 kg/cm$^{2}$}
\addplot[red, small,mark=*,mark size=1pt] coordinates {
(0.000001, 0.000)
(0.100, 0.129)
(0.250, 0.159)
(0.500, 0.177)
(1.000, 0.189)
(2.250, 0.204)
(4.000, 0.209)
(6.250, 0.214)
(9.000, 0.219)
(12.250, 0.221)
(16.000, 0.224)
(20.250, 0.227)
(25.000, 0.229)
(40.000, 0.233)
(60.000, 0.238)
(90.000, 0.241)
(120.000, 0.245)
(180.000, 0.249)
(480.000, 0.259)
(1440.000, 0.261)
};
\end{axis}
\end{tikzpicture}
\caption{0.2 kg/cm$^{2}$}
\label{fig:02}
\end{subfigure}
\end{figure}

\end{document}

在此处输入图片描述

答案2

在这个解决方案中,为了让解决方案更容易看清,我做的第一件事就是将两张图片放在单独的文件中,然后将\input它们放到图中。在本例中,我使用了 ,\shortstack这样图形就可以从基线堆叠。

\documentclass[11pt, letterpaper]{article}
\usepackage{pgfplots}
\usepackage{tikz}
\usepackage{caption}
\usepackage[right=1.5cm,left=1.5cm,top=2.5cm,bottom=2.0cm,headsep=1.2cm,footskip=1.5cm]{geometry} % Márgenes

\begin{document}

\begin{figure}[!htbp]
\small
\shortstack{\input{pica}\\(a) 0.1 kg/cm$^{2}$}
~~~~~
\shortstack{\input{picb}\\(b) 0.2 kg/cm$^{2}$}
\normalsize
\caption{This is my figure}
\end{figure}

\end{document}

在此处输入图片描述

相关内容