4

我有这样的数据:

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

请指导我创建宽屏分辨率地图,可能是高分辨率。

4

2 回答 2

3

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

要打开宽屏窗口,请在调用之前添加worldwindows(800,450)

编辑

看起来 ggmap 只是不支持非方形纵横比。

该文档声称可以将边界框传递给 location 属性,但它似乎只是忽略了它。

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)
于 2013-03-14T06:02:04.733 回答
2

一种解决方案是制作一张更大的地图,然后裁剪不需要的部分。

但我仍在试图弄清楚如何制作一张大的高分辨率地图(我得到的地图是 1280x1280 - 这足以满足大多数需求,但不能打印大地图)。我认为没有这样的功能,或者机器人可能会占用谷歌的所有带宽。一个更简单的解决方案是获取许多方形地图并将它们组装在一起,但是您将在所有这些地图中都拥有 Google 徽标。

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

于 2015-02-05T15:07:25.880 回答