R ggmap更改地图的大小

R ggmap更改地图的大小,r,ggmap,R,Ggmap,我想创建一个不是完全正方形而是矩形的地图,它的大小是我指定的 require(ggmap) tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813), color = "color", source = "google", maptype = "roadmap", zoom = 12) tenmile.map <- ggmap(tenmile, extent = "

我想创建一个不是完全正方形而是矩形的地图,它的大小是我指定的

require(ggmap)
tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813),
    color = "color",
    source = "google",
    maptype = "roadmap",
    zoom = 12)
tenmile.map <- ggmap(tenmile, 
    extent = "device",
    ylab = "Latitude",
    xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014")
tenmile.map + geom_point(data=pp, aes(x=lon, y=lat, size=geomean), color="red", alpha=0.5) +      
geom_text(data=pp, aes(x=lon, y=lat, label = site), size=3, vjust = 1.25, hjust = -0.1)
require(ggmap)

如果希望保持边界框的原始限制,但只是更改其形状,则可以调整纵横比。如果要更改边界框的限制,请像以前一样获取贴图,但使用
coord\u fixed()
(或
coord\u cartesian()
)设置其限制。或者可以调整边界框的纵横比和限制

tenmile <- get_map(location = c(lon = -122.486328, lat = 48.862813),
  color = "color",
  source = "google",
  maptype = "roadmap",
  zoom = 12)
tenmile.map <- ggmap(tenmile, 
  ylab = "Latitude",
  xlab = "Longitude")+ggtitle("GEOMean for Data from Oct 2013-Nov 2014") +
  coord_fixed(xlim = c(-122.55, -122.40), ratio = 2/1)

tenmile桑迪·穆斯普拉特的答案生成了一张矩形地图,但它被拉伸了。要获得一张未拉伸的地图,比率必须调整为地图所在位置平行线和子午线间距之间的比率。即:

比率=1/cos(纬度)

如果纬度以度为单位,则为:

比率=1/cos(π*纬度/180)

我在这里举了一个巴塞罗那地图的例子(巴塞罗那是一个很好的例子来检查拉伸,因为我们的大多数街道形成一个正方形网格,变形变得很容易注意)


library(ggmap)library(mapproj)mapbcn看起来ggmap没有,但也许你可以得到一张更大的地图。我猜这将是痛苦的坐标对齐。谢谢代码桑迪,但我无法让它工作。抱歉,错过了你的评论。你需要解释你期望地图是什么样子。我得到一张不是正方形的地图。
library(ggmap) library(mapproj) mapbcn <- get_map(location =
  'Barcelona, Catalonia', zoom = 13)

# square map (default) ggmap(mapbcn)

# map cropped by latitude 
ggmap(mapbcn) +                
  coord_fixed(ylim=c(41.36,41.41), 
              ratio=1/cos(pi*41.39/180))

# map cropped by longitude 
ggmap(mapbcn) +    
  coord_fixed(xlim=c(2.14, 2.18), 
              ratio=1/cos(pi*41.39/180))