非常小海岛高分辨率黑白地图

时间:2013-10-12 12:32:18

标签: r map ggplot2 high-resolution

我需要创建一个小岛的地图(黑白地图或灰度)。 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)我无法在地图上添加任何点或文字。

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

3 个答案:

答案 0 :(得分:3)

您应该将color参数设置为黑白:

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

ggmap(pngMAP_df)

修改

您还可以使用qmap将这两个功能结合起来进行快速地图绘制。

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

enter image description here

答案 1 :(得分: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")

enter image description here

答案 2 :(得分:0)

如果您已阅读get_map的{​​{3}},那么您会看到有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_pointggmapdocumentation或{{3例如)所以在这里回答它们就等于创建一个副本。在提出一个涵盖旧界的新问题之前,请在现有问题的答案中搜索帮助。

screenshot