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

时间:2016-06-12 19:19:38

标签: r ggplot2 ggmap geom-text

我正在使用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和amp;是的,但它仍然会出现同样的错误。

我为我的目标正确地做了吗?请帮忙。

现在不用geom_text获取此信息我只想标记点

enter image description here

1 个答案:

答案 0 :(得分:3)

您的代码中有一些不太正确的事情。

对于geom_point,您只需要x中的yaes。其他论点 应该在外面,给予

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

label的{​​{1}}也应位于geom_text内。然而, 由于较高级别没有aesdatax,因此y 将找不到标签变量或标签放置位置。所以你还需要在调用中包含这些

geom_text

但是,您可以使用geom_text(data=df, aes(x = Longitude, y = Latitude, label=Station.Area)) 参数省略某些重复   base_layer

ggmap