Sto provando a suddividere una mappa degli Stati Uniti in più finestre (alcune delle quali contengono lo stesso stato due volte). Mi piacerebbe che le scale fossero costanti (in modo che le mappe non venissero distorte) ma minimizzassero lo spazio tra le mappe. Non posso usare facet_wrap (a causa della natura sovrapposta delle regioni - e comunque, facet_wrap non può avere scale fisse e xlim differenti per ogni finestra). Qualche suggerimento su come migliorare la spaziatura sui risultati?Organizzare ggplot più oggetti mantenendo l'altezza costante
require(data.table)
require(ggplot2)
require(maps)
require(gridExtra)
all_states <- as.data.table(map_data("state"))
setnames(all_states,"region","state")
##define regions with overlapping states
weco.states <- c("oregon","washington","california")
west.states <- c("washington","montana", "idaho","utah","nevada","arizona","new mexico",
"wyoming","colorado","south dakota","texas")
east.states <- c(setdiff(unique(all_states$state), union(weco.states,west.states)),
"texas","south dakota")
all_states[,c("weco","west","east"):=FALSE]
all_states[state%in% weco.states, weco:=TRUE]
all_states[state%in% west.states, west:=TRUE]
all_states[state%in% east.states, east:=TRUE]
p.regbase <- ggplot() + coord_equal() +ylim(c(25,50))
p.weco <- p.regbase + geom_polygon(data=all_states[(weco),], aes(x=long, y=lat, group = group),colour="white", fill="grey")
p.west <- p.regbase + geom_polygon(data=all_states[(west),], aes(x=long, y=lat, group = group),colour="white", fill="grey")
p.east <- p.regbase + geom_polygon(data=all_states[(east),], aes(x=long, y=lat, group = group),colour="white", fill="grey")
print(arrangeGrob(p.weco,p.west,p.east,ncol=3,nrow=1))
a seconda di come a ridimensionare la finestra grafica nella GUI di Windows, i risultati sono o cattivo (scale sono diverse)
o decenti (stesse altezze), ma non c'è troppo spazio: Come può Mi libero dello spazio extra?
si può passare 'larghezze = unità (c (1, 2, 3), "nullo")' a 'arrangeGrob', e modificare i relativi fattori manualmente. – baptiste
Questo non risolve il fatto che organizzareGrob riempie lo spazio vuoto attorno al primo grafico. – Michael
Non vedo come questo ha risolto questo problema. Se può, potresti dimostrare come? Ho fornito codice di esempio completamente utilizzabile ... – Michael