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