带有 pgfplots 的子图

带有 pgfplots 的子图

我有以下 MWE

\documentclass[preview]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepackage{graphicx, float}
\usepackage{subcaption}

\def\figone{%
    \begin{tikzpicture}
        \begin{axis}[%
             width = 1.2\textwidth,
             height = \textwidth,
             grid = both,
             xtick distance = 1,
             ymin = 0,
             ymax = 2,
             ytick distance = 0.4,
             xlabel = $t/\tau$,
             ylabel = $V/V_0$
            ]
            \addplot[red, ultra thick]{exp(x)};
        \end{axis}
    \end{tikzpicture}
    }

\def\figtwo{%
    \begin{tikzpicture}
        \begin{axis}[%
             width = 1.2\textwidth,
             height = \textwidth,
             grid = both,
             xtick distance = 1,
             ymin = 0,
             ymax = 2,
             ytick distance = 0.4,
             yticklabels={,,},
             xlabel = $t/\tau$
            ]
            \addplot[blue, ultra thick]{exp(2*x)};
        \end{axis}
    \end{tikzpicture}
    }


\begin{document}

\begin{figure}[ht]
    \centering
    \begin{subfigure}[t]{0.45\textwidth}
        \figone
    \end{subfigure}
    \hspace{5.5mm}
    \begin{subfigure}[t]{0.45\textwidth}
        \figtwo
    \end{subfigure}
    \caption{Caption}
    \label{fig:my_label}
\end{figure}





\end{document}

在此处输入图片描述

请注意,我曾经\hspace{5.5mm}收集过这些图表。我通过反复试验得到了 5.5 毫米这个值。如果我注释掉那一行,图表就会合并,这样左边图的 0 值就会与右边图的边缘重合。

我的问题是: 有什么方法可以让这些图自动并排粘合在一起吗?

答案1

我认为实现你想要的最简单的方法是使用 PGFPlots当您不需要分离图像时,请使用库。

% used PGFPlots v1.16
\documentclass[border=5pt]{standalone}
\usepackage{pgfplots}
    \usepgfplotslibrary{groupplots}
    \pgfplotsset{compat=1.3}
\begin{document}
\begin{tikzpicture}
    \begin{groupplot}[
        group style={
            group size=2 by 1,
            horizontal sep=0pt,
            % show `ylabel` and `yticklabels` only on the left (most) plot
            y descriptions at=edge left,
        },
        width=0.45\textwidth,
        height=0.45\textwidth,
        grid=both,
        ymin=0,
        ymax=2,
        xtick distance=1,
        ytick distance=0.4,
        xlabel=$t/\tau$,
        ylabel=$V/V_0$,
    ]
    \nextgroupplot
        \addplot [red,ultra thick] {exp(x)};
    \nextgroupplot
        \addplot [blue,ultra thick] {exp(0.5*x)};
    \end{groupplot}
\end{tikzpicture}
\end{document}

该图显示了上述代码的结果

相关内容