如何在地图上将ID号放在圆圈中

时间:2017-08-19 09:23:50

标签: r ggmap

我正在尝试制作包含26个不同类别的网站的地图。我想用不同颜色的圆圈显示每个类别的网站,并在此圆圈中添加一个数字。然后,该号码将与包含站点的列表相关。

我熟悉ggmap以创建下面的地图,但我看不到如何在圈子中添加数字。我已经查看了ggmap https://stackoverflow.com/questions/tagged/ggmap?sort=frequent的常见问题解答,但我在这里找不到答案。

example_sites <- structure(list(`Site No` = c("1", "2", "3", "4"), 
     latitude = c(46.181608,46.171386, 46.179887, 46.181169), 
     longitude = c(8.78852, 8.803413, 8.767505, 8.842291), 
     `Site group` = c("1", "2", "2", "1")), 
     .Names = c("Site No", "latitude", "longitude", "Site group"), 
     class = c("tbl_df", "tbl", "data.frame"), row.names = c(NA, -4L))

map <- get_map(location ='Locarno, Switzerland', zoom = 13, 
    maptype = "terrain", color = "bw", source = 'google')

p <- ggmap(map)
plot(p)
p + geom_point(data = example_sites, aes(x = example_sites$longitude, y = example_sites$latitude, colour = example_sites$`Site group`), size = 5)

这给出了以下图表:

enter image description here

你知道是否有可能做我想做的事情(不同颜色的圆圈中有数字),如果可以,怎么做? 如果ggmap无法做到这一点,我很感激其他软件包的提示。

1 个答案:

答案 0 :(得分:4)

如果我理解你的问题,你只需要在你的代码中添加geom_text()。

p+
  geom_point(data=example_sites, 
             aes(x=longitude, y=latitude, colour=`Site group`), size=5) +
  geom_text(data=example_sites,
            aes(x=longitude, y=latitude, label = `Site No`))

plot

附注:如果您在dataset$来电中引用变量,则不需要aes组件。