调整不同尺寸的图形

调整不同尺寸的图形

我使用 Matplotlib/Python 生成了一些图形。

我想按行和按列/行显示它们。

这是我针对第一种情况的当前代码:

\begin{figure}[!htpb]
    \centering
    \subfloat[]{\includegraphics[width=5.3cm] {fig1}} \\
    \vspace{-10pt}
    \subfloat[]{\includegraphics[width=5.3cm] {fig2}} \\
    \vspace{-10pt}
    \subfloat[]{\includegraphics[width=5.3cm] {fig3}} \\        
\end{figure}

结果如下:

在此处输入图片描述

可以注意到,最后一幅图像比其他图像“更大”,因为它的比例有两个而不是三个数字。

我正在考虑一种处理这个问题的方法。我考虑过把所有图形左对齐放在一个 minipage 中,尝试不同的大小,然后把这个 minipage 放在一个图形环境中,但这似乎不能解决问题:

\begin{figure}[!htpb]
    \centering
    \begin{minipage}{\columnwidth}
        \subfloat[]{\includegraphics[width=5.3cm] {fig1}}   \\
        \vspace{-10pt}
        \subfloat[]{\includegraphics[width=5.3cm] {fig2}}    \\
        \vspace{-10pt}
        \subfloat[]{\includegraphics[width=5.3cm] {fig3}} \\        
    \end{minipage}
\end{figure}

答案1

为了保持每幅图像的“主”矩形大小相同,只需将每幅图像缩放相同的量即可

    \subfloat[]{\includegraphics[scale=0.25] {fig1}}   \\

不是

    \subfloat[]{\includegraphics[width=5.3cm] {fig1}}   \\

显然,精确的比例因子(这里是 0.25)将取决于您的原始图像大小,我不知道,但如果您指定它,而不是让 latex 计算比例,它们都会按相同的量缩放。

答案2

如果图形的主要部分具有相同的尺寸,则可以改用height;据我所知,第一张图像与右侧的颜色条一起近似为正方形,因此您可以采用以下策略。

在序言中添加

\newlength{\imagewidth}

然后代码可以是

\begin{figure}[!htpb]
\centering

\settowidth{\imagewidth}{\includegraphics[height=5.3cm]{fig1}}

\subfloat[]{\includegraphics[height=5.3cm]{fig1}}\\[-10pt]
\subfloat[]{\includegraphics[height=5.3cm]{fig2}}\\[-10pt]
\subfloat[]{\makebox[\imagewidth][l]{\includegraphics[height=5.3cm]{fig3}}}

\end{figure}

这个诀窍\makebox是为了获得对齐的子字幕。

答案3

我解决这个问题的方法是将所有图形合并到一个外部图形程序中(例如 Inkscape - 它是免费的,并且可以用于这类东西),然后将其插入。

这种方法的优点是你可以让事情保持一致确切地随心所欲。缺点是以后对模型进行任何更改时需要付出更多努力。

相关内容