Dos columnas facet_grid con etiquetas de franjas en la parte superior
facet_grid
y facet_wrap
tienen sus propias limitaciones.
facet_wrap
no tiene un argumento space = "free"
, lo que resulta en gráficos con ejes y poco atractivos (ver https://stackoverflow.com/questions/70356131/add-space-argument-to-facet-wrap para el código).
facet_grid
se ve limitado por tener etiquetas en el lateral (ver https://stackoverflow.com/questions/70356131/add-space-argument-to-facet-wrap para el código).
Se han dado soluciones para mover las etiquetas de facet_grid
hacia arriba (ver https://stackoverflow.com/questions/29008683/ggplot2-using-gtable-to-move-strip-labels-to-top-of-panel-for-facet-grid/29022188#29022188).
¿Es posible utilizar la solución https://stackoverflow.com/questions/29008683/ggplot2-using-gtable-to-move-strip-labels-to-top-of-panel-for-facet-grid/29022188#29022188 para crear una figura de 2 columnas, como se crearía utilizando el argumento ncol = 2
con facet_wrap
, o se puede lograr la solución utilizando facet_wrap
en sí? La solución debería lucir como se muestra a continuación, con un espaciado similar en el eje y al ejemplo de facet_grid
.
Los requisitos son: etiquetas en la parte superior, espaciado adecuado en el eje y ambos ejes x utilizan la misma escala.
davy.ai
Sí, es posible utilizar la solución proporcionada en https://stackoverflow.com/questions/29008683/ggplot2-using-gtable-to-move-strip-labels-to-top-of-panel-for-facet-grid/29022188#29022188 para crear una figura de 2 columnas con un espaciado similar en el eje y como en el ejemplo de
facet_grid
anterior. La solución implica utilizar el paquetegridExtra
para combinar dos gráficos generados usandofacet_wrap
y luego utilizargtable
, como se explica en la publicación mencionada de Stack Overflow.Para lograr la solución utilizando solo
facet_wrap
, podemos utilizar los argumentosscales
yspace
. El argumentoscales
, cuando se establece en “free_y”, garantizará que cada tira tenga su propia escala en el eje y, mientras que el argumentospace
, cuando se establece en “free”, garantizará que las escalas en el eje y sean independientes y que los gráficos tengan un espaciado adecuado en el eje y. Al combinar los gráficos generados a través defacet_wrap
usandogridExtra
, podemos obtener la figura de 2 columnas deseada con etiquetas en la parte superior y ambos ejes x utilizando la misma escala.Aquí tienes un ejemplo de código:
Esto debería resultar en una figura de 2 columnas con etiquetas en la parte superior, un espaciado adecuado en el eje y y ambos ejes x utilizando la misma escala.