Sto tentando di allineare i bordi sinistro e destro di 4 mappe di choropleth ggplot utilizzando this method. Non sono in grado di farlo comunque.Allinea i bordi di ggplot choropleth (il titolo della legenda varia)
trama originale:
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)
tentativo di allineare i bordi trama (stesso risultato):
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)
PS: assumere Ho bisogno di utilizzare griglia di organizzare e le leggende non sono in realtà la stessa scala quindi facet_grid
è fuori ecc
Se è solo il titolo della legenda che è il problema, avete considerato posizionandolo orizzontalmente nella parte superiore o inferiore ? Cioè 'plot1 + theme (legend.position = 'bottom', legend.direction = 'horizontal')' – MrGumble
come suggerito nei commenti per il link che hai postato, probabilmente volevi usare 'widths [2: 5]' per includere la leggenda nel confronto delle unità. Si noti che il risultato sarà lo stesso centraggio della legenda come nella prima risposta di @kohske, perché il grido della guida si centra nella finestra assegnata. – baptiste
Ho provato "widths [2: 5]" e ho ottenuto posizionamenti molto strani. –