2

我正在与ggmap. 目标是在地图上绘制坐标点并用它们的名称标记这些点。我有名称、经度和纬度的数据框。

数据看起来像:

df <- structure(list(Station.Area = c("Balbriggan", "Blanchardstown", 
"Dolphins Barn", "Donnybrook", "Dun Laoghaire", "Finglas"), Latitude = c(53.608319, 
53.386813, 53.333532, 53.319259, 53.294396, 53.390325), Longitude = c(-6.18208, 
-6.377197, -6.29146, -6.232017, -6.133867, -6.298401)), .Names =c("Station.Area","Latitude", "Longitude"), row.names = c(NA, 6L), class = "data.frame")

我写的代码如下:

library(ggmap)
library(ggplot2)

dub_map <- get_map(location = "Dublin", zoom = "auto", scale="auto", crop = TRUE, maptype = "hybrid")

ggmap(dub_map) +`
    geom_point(data = df, aes(x = Longitude, y = Latitude, 
              fill = "green", alpha =` `0.8, size = 5, shape = 21)) +`
guides(fill=FALSE, alpha=FALSE, size=FALSE)+
geom_text(label=df$Station.Area)+
scale_shape_identity()

但我得到

错误:美学必须是长度1或与数据相同(4):标签

我试图将各种美学放在geom_text尺寸、颜色、x 和 Y 中,但它仍然给出相同的错误。

我是否为我的目标正确地做这件事?请帮忙。

现在没有 geom_text 得到这个我只想标记点

在此处输入图像描述

4

1 回答 1

3

您的代码中有几处不太正确。

对于geom_point您只需要xandy在您的aes. 其他论点应该在外面,给

geom_point(data = df, aes(x = Longitude, y = Latitude), 
                  fill = "green", alpha =0.8, size = 5, shape = 21)

也应该在label里面。但是,由于没有,或者在更高级别,则 不会找到标签变量或放置标签的位置。所以你还需要在调用中包含这些geom_textaesdataxygeom_text

geom_text(data=df, aes(x = Longitude, y = Latitude, label=Station.Area))

base_layer但是,您可以通过使用以下参数来省略其中的一些重复ggmap

ggmap(dub_map, 
      base_layer = ggplot(data=df, aes(x = Longitude, 
                                       y = Latitude, 
                                       label=Station.Area))) +
      geom_point(fill = "green", alpha =0.8, size = 5, shape = 21) +
      geom_text() 
于 2016-06-12T20:28:11.373 回答