我試圖將美國地圖分成多個窗口(其中一些包含相同的狀態兩次)。我希望比例不變(這樣地圖不會變形),但是也可以最小化地圖之間的空間。我無法使用facet_wrap(由於區域的重疊性質 - 無論如何,facet_wrap無法將縮放比例固定,並且對於每個窗口都有不同的xlim)。有關如何改善結果間距的任何建議?安排ggplot維持恆定高度的多個對象
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))
取決於我如何調整在Windows GUI圖形窗口中,其結果要麼是壞的(尺度是不同的)
或體面的(同一高度),但有太多的空間:哪有我擺脫了額外的空間?
可以傳遞'寬度=單元(c(1,2,3), 「空」)''到arrangeGrob',和手動調整的相關因素。 – baptiste
這並沒有解決這樣一個事實,即arrangeGrob填充第一個圖形周圍的空白區域。 – Michael
我看不出這是如何解決這個問題的。如果可以的話,你能證明一下嗎?我提供了完全可用的示例代碼... – Michael