Problema con múltiples gráficos en una página, R
Estoy buscando una forma de alinear múltiples gráficos en una página en R, manteniendo el mismo tamaño de panel y distancias entre ellos. En total tengo cuatro gráficos, dos creados con ggplot y dos con levelplot. He intentado lo siguiente, pero los paneles no se colocan de manera equitativa. Los levelplots (c y d) aparecen más pequeños y con una gran distancia entre ellos. ¿Algún idea de cómo solucionarlo?
PD: Sé que mi código no es reproducible, pero mis rasters son bastante grandes para compartir, disculpen. ¡Espero que este problema suene familiar para alguien!
plot_grid(a, b, c, d, ncol=2, nrow=2, rel_heights = c(1/4, 1/4, 1/4, 1/4))
ggarrange(a, b, c, d, ncol=2, nrow=2)
ggarrange(a, b, c, d, ncol=2, nrow=2, heights = c(1, 1, 1, 1))
davy.ai
Una posible solución es usar el paquete cowplot en combinación con el paquete patchwork. Aquí tienes un ejemplo:
“`{r}
library(cowplot)
library(patchwork)
create four plots with different sizes using ggplot and levelplot
a <- ggplot(…) # primer ggplot
b <- ggplot(…) # segundo ggplot
c <- levelplot(…) # primer levelplot
d <- levelplot(…) # segundo levelplot
combina los gráficos usando patchwork
ajusta las alturas y anchuras de los gráficos usando los parámetros height y width
y alinea los paneles usando el parámetro align
p <- (a | b) /
(c | d)
p + plot_layout(widths = c(1, 1), heights = c(1, 1),
align = c(“none”, “none”))
usa cowplot para agregar una leyenda común para los levelplots
primero, extrae la leyenda de los levelplots
leg <- cowplot::get_legend(c, d)
luego agrega la leyenda al gráfico combinado usando ggdraw y draw_plot
p + ggdraw() + draw_plot(leg)
“`
Esto debería crear una cuadrícula de cuatro gráficos con los mismos tamaños de panel y distancias entre ellos. El parámetro
align = c("none", "none")
asegura que los paneles no estén alineados entre sí. Los parámetroswidths
yheights
ajustan los tamaños de los gráficos para que se ajusten en la página. Finalmente, las funcionescowplot::get_legend()
,ggdraw()
ydraw_plot()
de cowplot se utilizan para agregar una leyenda común a los levelplots.Ten en cuenta que es posible que debas ajustar los parámetros específicos dependiendo de los tamaños y dimensiones de los gráficos. Además, el paquete cowplot proporciona otras herramientas para organizar y alinear gráficos que pueden ser útiles.