Tamaño y ubicación de subfiguras de diferente tamaño original.

Tamaño y ubicación de subfiguras de diferente tamaño original.

Tengo una figura la cual tiene tres subfiguras similares y una de diferente tamaño (mostrando la leyenda de las otras tres). Tengo problemas para que el tamaño y la ubicación del documento se vean bien.

Este es mi código actual:

\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}

Todas las figuras están recortadas tanto como pude. Esto da el siguiente resultado, donde la leyenda es demasiado grande:

ingrese la descripción de la imagen aquí

Pero luego intento, por ejemplo, cambiar la última cifra a

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

el espaciado está desactivado:

ingrese la descripción de la imagen aquí

Nada más que intenté funcionó tampoco. ¿Algunas ideas?

Respuesta1

Con el uso de \sbox{...}puedes medir el tamaño de las imágenes de la izquierda y luego acomodar tu imagen con leyenda a su altura:

    \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}

Lo que da (con el uso example-imagedel graphicxpaquete):

ingrese la descripción de la imagen aquí

Con sus imágenes reales estimadas a partir de la imagen en cuestión, el ancho de la imagen con leyenda es más estrecho que el de otras imágenes, por lo que no sobresaldrá del ancho del texto.

Si la relación de aspecto de la imagen no es esencial, puede limitar su ancho a una fracción del ancho disponible, por ejemplo:

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

En este caso la imagen queda:

ingrese la descripción de la imagen aquí

Nota:para posicionar imágenes en la segunda fila, el parámetro de ubicación subfigurecambia de [b]a [t]. Sería bueno hacerlo también con las subfiguras de la primera fila de la imagen.

Apéndice:Otra posibilidad para ajustar la imagen a la leyenda es utilizar el siguiente código para la última subimagen:

\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}%

Teniendo en cuenta esta parte del código y después del recorte apropiado de sus imágenes originales, una especial que contiene leyenda, mi MWE proporciona:

ingrese la descripción de la imagen aquí

Se agregan marcos alrededor de las imágenes para que sea mejor observar el recorte de las imágenes. Por supuesto, en el uso real estos marcos debían omitirse.

Tenga en cuenta que la medición de la altura de la imagen considera la altura completa de la imagen (con espacios en blanco a su alrededor). Considere que esta altura la imagen de la leyenda se vuelve demasiado alta, por lo que es necesario agregar un espacio en blanco debajo que simule el texto debajo del gráfico (etiquetas de marca, etiqueta de eje) en la imagen de la izquierda. Calculo que esa altura equivalente es 3exla que agrego para recortar los valores.

El código completo con marcos alrededor de la imagen es:

    \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}

A partir del código, puede observar que su problema principal fue el mal recorte de la imagen con la leyenda (dejó un espacio en blanco en la parte superior).

Respuesta2

La razón por la que la leyenda se desplaza de esta manera es porque la [b]opción del subfigureentorno le indica que alinee el contenido en la parte inferior; de ahí que la parte inferior de la leyenda esté al mismo nivel que la parte inferior de (c).

Si desea alinear con los centros de cada subfigura, use [c]y si desea alinear la parte superior de cada subfigura, use [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}

alineado al centro

información relacionada