1

我需要创建一个小岛的地图(黑白地图或灰度图)。worldHires不起作用:

library(maps)
library(mapdata)
map("worldHires", fill=TRUE, col="grey80", xlim=c(105.2, 105.8), ylim=c(-10.8, -10.2))
map.scale(ratio=FALSE, relwidth = 0.18)   

Error in map.poly(database, regions, exact, xlim, ylim, boundary, interior,  : 
  nothing to draw: all regions out of bounds

我已经尝试了该软件包ggmap和以下代码:

library(ggmap)
pngMAP_df <-  get_map(location = c(lon = 105.62, lat = -10.5), source = "google", zoom = 12)
ggmap(pngMAP_df)

这可行,但是:(1)这会创建一个彩色地图,(2)我不能在地图上添加任何点或文本。

任何建议或想法如何绘制这样的黑白地图并添加点、文本和比例(以公里为单位)?

4

3 回答 3

3

您应该将color参数设置为 black-and-white :

library(ggmap)
pngMAP_df<- get_map(location = c(lon = 105.62, lat = -10.5), 
                    source = "google", zoom = 12,color='bw')

ggmap(pngMAP_df)

编辑

您还可以使用qmapwhich marries 这两个函数来快速绘制地图。

qmap(location = c(lon = 105.62, lat = -10.5), 
                    source = "google", zoom = 12,color='bw')

在此处输入图像描述

于 2013-10-12T13:16:45.890 回答
0

使用参数绘制地图后,您可以使用标准 命令color="bw"添加点和文本:ggplot2

library(ggmap)
pngMAP_df <-  get_map(location = c(lon = 105.62, lat = -10.5),
                      source = "google",
                      zoom = 12,
                      color="bw")
ggmap(pngMAP_df) +
    geom_point(x=105.58, y=-10.5, col="red") +
    geom_text(x=105.60, y=-10.49, label="foo")

在此处输入图像描述

于 2013-10-12T13:22:04.793 回答
0

如果您已阅读文档get_map您会发现存在color争论。将其添加到您的代码中可以获得灰度图像(见下文)。

library(ggmap)
pngMAP_df <-  get_map(location = c(lon = 105.62, lat = -10.5), 
              source = "google",
              color = "bw",
              zoom = 12)
ggmap(pngMAP_df)

至于添加点、文本等,这些都包含在本网站上的多个其他问题中,只需搜索geom_pointggmap(例如这个这个)就可以找到,所以在这里回答它们只会造成重复。在提出涉及旧问题的新问题之前,请在现有问题的答案中寻求帮助。

截屏

于 2013-10-12T13:24:19.850 回答