我正在使用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获取此信息我只想标记点
答案 0 :(得分:3)
您的代码中有一些不太正确的事情。
对于geom_point
,您只需要x
中的y
和aes
。其他论点
应该在外面,给予
geom_point(data = df, aes(x = Longitude, y = Latitude),
fill = "green", alpha =0.8, size = 5, shape = 21)
label
的{{1}}也应位于geom_text
内。然而,
由于较高级别没有aes
,data
或x
,因此y
将找不到标签变量或标签放置位置。所以你还需要在调用中包含这些
geom_text
但是,您可以使用geom_text(data=df, aes(x = Longitude, y = Latitude, label=Station.Area))
参数省略某些重复
base_layer
:
ggmap