使用ggmap绘制地图时的大白边框

时间:2014-03-27 10:33:46

标签: r ggplot2 maps ggmap

我可以使用ggmap绘制一张英国地图,其中包含以下内容:

library(ggmap)
UK_map <- get_map(location = c(-2.65, 53.7), zoom = 5, maptype = "hybrid")
UK_map <- ggmap(ggmap=UK_map, extent = "device", legend = "right")
UK_map <- UK_map + geom_point(data = data.frame(x = -1.81, y = 55.655), aes(x, y), size  = 5)

我可以使用Winston Chang的multiplot函数在同一窗口中输出两个图:

multiplot <- function(..., plotlist=NULL, cols) {
    require(grid)

    # Make a list from the ... arguments and plotlist
    plots <- c(list(...), plotlist)

    numPlots = length(plots)

    # Make the panel
    plotCols = cols                          # Number of columns of plots
    plotRows = ceiling(numPlots/plotCols) # Number of rows needed, calculated from # of cols

    # Set up the page
    grid.newpage()
    pushViewport(viewport(layout = grid.layout(plotRows, plotCols)))
    vplayout <- function(x, y)
        viewport(layout.pos.row = x, layout.pos.col = y)

    # Make each plot, in the correct location
    for (i in 1:numPlots) {
        curRow = ceiling(i/plotCols)
        curCol = (i-1) %% plotCols + 1
        print(plots[[i]], vp = vplayout(curRow, curCol ))
    }

}

multiplot(UK_map, UK_map, cols = 2)

enter image description here

但是当使用multiplot时,地图上方和下方会出现一个大的白色边框,如附图中所示。有没有办法阻止这个白色边框出现?

1 个答案:

答案 0 :(得分:0)

我没有使用multiplot但是方便的grid.arrange是相似的并且产生类似的输出 - 首先(即大的白色上/下边距)。

您可以更改图片设备的输出高度/宽度,以获得您想要的内容,因为它最初会进入&#34; center&#34;它到所选择的图形设备上:

png("map.png", width=480, height=240)
grid.arrange(UK_map, UK_map, ncol=2)
dev.off()

制作以下(未触动!)地图:

map