2013-03-14 29 views
4

宽屏,分辨率我有一个数据是这样的:如何与ggmap

YEAR-STORM-DATETIME-NORTH-WEST-PRESSURE-WIND-SPEED-TRACKDATE 
2011-arlene-6/28/2011 6:00-19.9-92.8-1007-30-NA-6/28/2011 
2011-arlene-6/28/2011 12:00-20.3-93.1-1006-35-4-6/28/2011 
2011-arlene-6/28/2011 18:00-20.7-93.5-1006-40-5-6/28/2011 
so on.. 

我是新来的R和我密谋密度积了ggmap。我也用闪亮的R在网站上显示它们。问题是输出都是非宽屏(平方)地图。我想要一张矩形地图,就像Openlayers或KML提供的谷歌地图一样。 我的代码是:

library(ggplot2) 
library(ggmap) 

mydata <- read.csv("C:/R Data/Analytics/dMetrics.csv") 
slice_year <- mydata[mydata$YEAR=='2009',] 
map <- get_map(c(lon = -55.3632715, lat = 31.7632836), zoom = 3, 
       source = 'google', maptype = c("terrain"), messaging = FALSE, 
       color = 'color') 

world <- ggmap(map) #extent = 'device' 
world <- world + 
     stat_density2d(data = slice_year, 
         aes(x = WEST, y = NORTH, fill = ..level.., alpha = ..level..), 
         show_guide = FALSE, geom = "polygon", na.rm = TRUE) + 
     scale_fill_gradient(name = "Density", low = "maroon", high = "yellow", 
          guide = 'colorbar') 
world 

请指引我通过创建一个宽屏分辨率的地图,可能高分辨率。

回答

2

将图像保存为宽屏,这添加到末尾:ggsave(file="map.pdf", width=8, height=4.5)

要打开宽屏窗口,调用world前补充一点:windows(800,450)

编辑

它看起来像ggmap只是不支持非sqaure纵横比。

该文件声称边界框可以传递到位置属性,但它似乎只是忽略它。

scale <- 5 
ratio <- 16/9 
size <- c(ratio, 1) * scale 
latlongCenter <- c(0, 45) 
latlongBox <- c(latlongCenter - size/2, latlongCenter + size/2) 

map <- get_map(location = latlongBox) 
ggmap(map) 
+0

感谢您的想法。我尝试过,但地图仍保存为** 4:3 **长宽比和其周围的空白区域以符合分辨率。我们可以有任何裁剪机制或类似的东西,使其真正的宽屏分辨率**(16:9)**,使其很好地适应网页? – Sabin 2013-03-14 17:09:13

+0

更新后的回复。它似乎并不支持它。 – sharoz 2013-03-14 21:43:33

+0

是的,我尝试提供边界框,而它仍然没有解决我的问题。 – Sabin 2013-03-15 15:59:35

1

一个解决方案是生成一个更大的地图,然后裁剪你不需要的部分。

但是我仍然在想如何生成一张大的高分辨率地图(我得到的地图是1280x1280--这对大多数需求来说已经足够了,但不能打印出大的地图)。我认为这没有任何功能,或者漫游器可能占用Google的所有带宽。一个更简单的解决方案是获得许多方形地图并将它们组合在一起,但是所有这些地图都会有Google徽标。

我认为要做到这一点的唯一方法就是制作小方形地图并剪下标识和版权信息所在的底部。要在最终地图的边界再次添加他们的徽标(以不同的方式切割它们)会带来更多的工作...