我有这样的数据:
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
请指导我创建宽屏分辨率地图,可能是高分辨率。
要将图像保存为宽屏,请将其添加到结尾:ggsave(file="map.pdf", width=8, height=4.5)
要打开宽屏窗口,请在调用world
:windows(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)
一种解决方案是生成更大的地图,然后裁剪您不需要的部分。
但我仍然在试图想出如何制作一张大而高分辨率的地图(我得到的地图是1280x1280 - 这足以满足大多数需求,但不能打印大地图)。我认为这没有任何功能,或者机器人可以占用Google的所有带宽。一个更简单的解决方案是获得许多方形地图并将它们组合在一起,但随后您将在所有这些地图中都有Google徽标。
我认为唯一的方法是制作小方形地图并剪切底部,标识和版权信息在哪里。要在最终地图的边框中再次添加徽标(以不同方式切割它们)会带来更多的工作......