tutorial tamaño poner leyenda ggplot español como change r ggplot2 gridextra

r - tamaño - leyenda en ggplot2



Alinee los bordes del coroplete ggplot(el título de la leyenda varía) (2)

Aquí hay un ejemplo:

library(gtable) grid.draw(cbind(rbind(p1, p2, size="last"), rbind(p3, p4, size="last"), size = "first"))

Actualizado

Este es un truco malo, así que no recomiendo usarlo. Probablemente esto no funcionará en el futuro.

gt <- cbind(rbind(p1, p2, size="last"), rbind(p3, p4, size="last"), size = "first") for (i in which(gt$layout$name == "guide-box")) { gt$grobs[[i]] <- gt$grobs[[i]]$grobs[[1]] } grid.draw(gt)

Intento alinear los bordes izquierdo y derecho de 4 mapas de coropla ggplot usando este método . Sin embargo, no puedo hacer esto.

Trama original:

library(ggplot2); library(gridExtra) crimes <- data.frame(state = tolower(rownames(USArrests)), USArrests) states_map <- map_data("state") plot1 <- ggplot(crimes, aes(map_id = state)) + geom_map(aes(fill = Murder), map = states_map) + expand_limits(x = states_map$long, y = states_map$lat) + scale_fill_gradient(low="white", high="darkgreen", name="Really Long Name 1") plot2 <- plot1 + scale_fill_gradient(name="Really Long Name 2 and then some") plot3 <- plot1 + scale_fill_gradient(name="Short 3") plot4 <- plot1 + scale_fill_gradient(name="Really Long Name 4") grid.arrange(plot1, plot3, plot2, plot4, ncol = 2)

Intentar alinear los bordes de la gráfica (el mismo resultado):

p1 <- ggplotGrob(plot1) p2 <- ggplotGrob(plot2) p3 <- ggplotGrob(plot3) p4 <- ggplotGrob(plot4) maxWidth <- grid::unit.pmax(p1$widths[2:3], p2$widths[2:3], p3$widths[2:3], p4$widths[2:3]) p1$widths[2:3] <- as.list(maxWidth) p2$widths[2:3] <- as.list(maxWidth) p3$widths[2:3] <- as.list(maxWidth) p4$widths[2:3] <- as.list(maxWidth) grid.arrange(p1, p3, p2, p4, ncol = 2)

PD: Supongamos que necesito usar la cuadrícula y las leyendas no son en realidad la misma escala, por lo que facet_grid está fuera, etc.


Usando el paquete cowplot :

library(cowplot) plot_grid(plot1, plot3, plot2, plot4, ncol = 2, align = "v")