如何使用ggmap进行宽屏分辨率

问题描述 投票:4回答:2

我有这样的数据:

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

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

r ggmap
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)

2
投票

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

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

我认为唯一的方法是制作小方形地图并剪切底部,标识和版权信息在哪里。要在最终地图的边框中再次添加徽标(以不同方式切割它们)会带来更多的工作......

© www.soinside.com 2019 - 2024. All rights reserved.