Größe und Platzierung von Unterfiguren unterschiedlicher Originalgröße

Größe und Platzierung von Unterfiguren unterschiedlicher Originalgröße

Ich habe eine Abbildung mit drei ähnlichen Unterabbildungen und einer anderen Größe (die die Legende der anderen drei zeigt). Ich habe Probleme, die Größe und Platzierung im Dokument gut aussehen zu lassen.

Dies ist mein aktueller Code:

\begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_os.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_IP_p.pdf}
\caption{}
\end{subfigure}%
\\
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{./Data_Figures/Coeff_evolution_LS_p.pdf}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=\textwidth,trim=5cm 1mm 5cm 5.2cm, clip=true]{./Data_Figures/Coeff_evo_legend.pdf}
\end{subfigure}%
\end{figure}

Alle Abbildungen wurden soweit wie möglich beschnitten. Dies führt zu folgendem Ergebnis, wobei die Legende zu groß ist:

Bildbeschreibung hier eingeben

Aber dann versuche ich z.B. die letzte Zahl zu ändern in

\includegraphics[width=0.5\textwidth...]{...}

der Abstand stimmt nicht:

Bildbeschreibung hier eingeben

Nichts anderes, was ich versucht habe, hat funktioniert. Irgendwelche Ideen?

Antwort1

Mithilfe von \sbox{...}können Sie die Größe der linken Bilder messen und dann Ihr Bild mit Legende an seine Höhe anpassen:

    \documentclass{article}
    \usepackage{subcaption}
    \usepackage{graphicx}

\begin{document}
    \begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-a}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-b}
\caption{}
\end{subfigure}

\begin{subfigure}[t]{0.5\textwidth}
\centering
\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\centering
\sbox0{\includegraphics[width=0.9\textwidth,trim=3mm 4mm 50mm 2mm, clip=true]{example-image-c}}%
\includegraphics[height=\ht0,keepaspectratio]{example-image}
\end{subfigure}%
    \end{figure}
\end{document}

Das ergibt (bei Verwendung example-imageaus graphicxdem Paket):

Bildbeschreibung hier eingeben

Bei der Schätzung Ihrer tatsächlichen Bilder anhand des betreffenden Bildes ist die Breite des Bildes mit Legende schmaler als bei anderen Bildern, sodass es folglich nicht über die Textbreite hinausragt.

Wenn das Seitenverhältnis des Bildes nicht wichtig ist, können Sie seine Breite auf einen Bruchteil der verfügbaren Breite begrenzen, zum Beispiel:

\includegraphics[width=0.8\textwidth, height=\ht0]{example-image}

In diesem Fall ergibt sich folgendes Bild:

Bildbeschreibung hier eingeben

Notiz:subfigureFür die Positionierung von Bildern in der zweiten Reihe wird der Platzierungsparameter von [b]in geändert [t]. Dies wäre auch für Unterabbildungen in der ersten Bildreihe sinnvoll.

Nachtrag:Eine weitere Möglichkeit, das Bild mit der Legende auszurichten, besteht darin, den folgenden Code für das letzte Unterbild zu verwenden:

\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
                        trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\framebox{\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}}
\end{subfigure}%

Unter Berücksichtigung dieses Codeteils und nach entsprechendem Zuschneiden Ihrer Originalbilder, insbesondere eines mit der enthaltenen Legende, ergibt mein MWE:

Bildbeschreibung hier eingeben

Um die Bilder herum werden Rahmen eingefügt, damit das Beschneiden der Bilder besser erkennbar ist. Im realen Einsatz mussten diese Rahmen natürlich weggelassen werden.

Beachten Sie, dass die Messung der Bildhöhe die gesamte Bildhöhe (mit Leerraum darum) berücksichtigt. Angesichts dieser Höhe wird das Legendenbild zu hoch, sodass darunter ein Leerraum hinzugefügt werden muss, der den Text unter dem Diagramm (Markierungsmarkierungen, Achsenbeschriftung) auf dem linken Bild simuliert. Ich schätze, dass dies die äquivalente Höhe ist, 3exdie ich zu den Trimmwerten hinzufüge.

Der vollständige Code mit Rahmen um das Bild lautet:

    \documentclass{article}
    \usepackage{subcaption}
    \usepackage{calc}
    \usepackage{graphicx}

\begin{document}
    \begin{figure}
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_os}}
\caption{}
\end{subfigure}%
\begin{subfigure}[b]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_IP_p}}
\caption{}
\end{subfigure}

\bigskip
\begin{subfigure}[t]{0.5\textwidth}
\centering
\framebox{\includegraphics[width=0.9\textwidth,%
                           trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}
\caption{}
\end{subfigure}%
\begin{subfigure}[t]{0.5\textwidth}
\sbox0{\includegraphics[width=0.9\textwidth,%
                        trim=3mm 4mm 55mm 2.5mm,clip]{./Data_Figures/Coeff_evolution_LS_p}}%
\centering
\includegraphics[trim=52mm -3.5ex 52mm 53mm,clip,height=\ht0]{./Data_Figures/Coeff_evo_legend}
\end{subfigure}
    \end{figure}
\end{document}

Anhand des Codes können Sie erkennen, dass Ihr Hauptproblem darin bestand, dass das Bild mit der Legende falsch zugeschnitten war (Sie haben oben und drinnen Leerraum gelassen).

Antwort2

Der Grund für diesen Versatz der Legende liegt darin, dass die [b]Umgebungsoption subfigurevorgibt, den Inhalt unten auszurichten. Daher befindet sich die Unterseite der Legende auf derselben Höhe wie die Unterseite des (c).

Wenn Sie an den Mittelpunkten der einzelnen Unterfiguren ausrichten möchten, verwenden Sie, [c]und wenn Sie an der Spitze der einzelnen Unterfiguren ausrichten möchten, verwenden Sie [t]:

\documentclass{article}
\usepackage{graphicx}
\usepackage{subcaption}

\begin{document}
    \begin{figure}
    \begin{subfigure}[c]{0.5\textwidth}
    \centering
    \includegraphics[width=\textwidth]{1.png}
    \caption{Foo}
    \end{subfigure}
    \begin{subfigure}[c]{0.5\textwidth}
    \centering
    \includegraphics[width=\textwidth]{2.png}
    \caption{Bar}
    \end{subfigure}
    \end{figure}
\end{document}

mittig ausgerichtet

verwandte Informationen