如何使用R中的geom_label_repel在ggmap上标记点?

如何使用R中的geom_label_repel在ggmap上标记点?,r,ggplot2,ggmap,R,Ggplot2,Ggmap,我有一个数据框,由5个酒店名称及其各自的位置组成。我将ggmap使用以下代码在地图上绘制我的酒店。然而,当我试图在地块上显示我的酒店名称时,我遇到了问题。起初,我想,我应该把酒店的名字写在图例中,并用“点/点”的颜色“应与酒店名称相对应。我在这里的问题是,我无法获得相同大小的“点/点”。经过研究,我找到了更好的方法,可以把酒店的名字直接标在地图上。这就是我遇到的问题。然而,每当我在代码下面运行时,它都会给我一个错误 我的数据场如下: structure(list(hotel_name = str

我有一个数据框,由5个酒店名称及其各自的位置组成。我将
ggmap
使用以下代码在地图上绘制我的酒店。然而,当我试图在地块上显示我的酒店名称时,我遇到了问题。起初,我想,我应该把酒店的名字写在图例中,并用“点/点”的颜色“应与酒店名称相对应。我在这里的问题是,我无法获得相同大小的“点/点”。经过研究,我找到了更好的方法,可以把酒店的名字直接标在地图上。这就是我遇到的问题。然而,每当我在代码下面运行时,它都会给我一个错误

我的数据场如下:

structure(list(hotel_name = structure(c(1L, 5L, 2L, 4L, 3L), .Names = c("h1_Loc", 
"h2_Loc", "h3_Loc", "h4_Loc", "h5_Loc"), .Label = c("Grand Hyatt San Diego", 
"Grand Hyatt San Francisco", "Hyatt Regency Orange County", "Hyatt Regency Sacramento", 
"Hyatt Regency San Francisco"), class = "factor"), longi = c(-117.168713, 
-122.395447, -122.407291, -121.490768, -117.916417), lati = c(32.709745, 
37.794589, 37.789216, 38.577627, 33.789322)), .Names = c("hotel_name", 
"longi", "lati"), row.names = c("h1_Loc", "h2_Loc", "h3_Loc", 
"h4_Loc", "h5_Loc"), class = "data.frame")
> ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
+ geom_label_repel(
  aes(d1$longi, d1$lati, label =d1$hotel_name),
  box.padding = 0.35, point.padding = 0.5,
  segment.color = 'grey50') +
  theme_classic(base_size = 12)
Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=California&zoom=6&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=California&sensor=false
Error: Don't know how to add o to a plot
代码我试图在地图上而不是图例上显示我的酒店名称:

structure(list(hotel_name = structure(c(1L, 5L, 2L, 4L, 3L), .Names = c("h1_Loc", 
"h2_Loc", "h3_Loc", "h4_Loc", "h5_Loc"), .Label = c("Grand Hyatt San Diego", 
"Grand Hyatt San Francisco", "Hyatt Regency Orange County", "Hyatt Regency Sacramento", 
"Hyatt Regency San Francisco"), class = "factor"), longi = c(-117.168713, 
-122.395447, -122.407291, -121.490768, -117.916417), lati = c(32.709745, 
37.794589, 37.789216, 38.577627, 33.789322)), .Names = c("hotel_name", 
"longi", "lati"), row.names = c("h1_Loc", "h2_Loc", "h3_Loc", 
"h4_Loc", "h5_Loc"), class = "data.frame")
> ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
+ geom_label_repel(
  aes(d1$longi, d1$lati, label =d1$hotel_name),
  box.padding = 0.35, point.padding = 0.5,
  segment.color = 'grey50') +
  theme_classic(base_size = 12)
Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=California&zoom=6&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=California&sensor=false
Error: Don't know how to add o to a plot
运行上述代码后出现错误:

structure(list(hotel_name = structure(c(1L, 5L, 2L, 4L, 3L), .Names = c("h1_Loc", 
"h2_Loc", "h3_Loc", "h4_Loc", "h5_Loc"), .Label = c("Grand Hyatt San Diego", 
"Grand Hyatt San Francisco", "Hyatt Regency Orange County", "Hyatt Regency Sacramento", 
"Hyatt Regency San Francisco"), class = "factor"), longi = c(-117.168713, 
-122.395447, -122.407291, -121.490768, -117.916417), lati = c(32.709745, 
37.794589, 37.789216, 38.577627, 33.789322)), .Names = c("hotel_name", 
"longi", "lati"), row.names = c("h1_Loc", "h2_Loc", "h3_Loc", 
"h4_Loc", "h5_Loc"), class = "data.frame")
> ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap"))+ggplot(d1, aes(x= d1$longi, y = d1$lati)) +geom_point(color = "blue", size = 3)
+ geom_label_repel(
  aes(d1$longi, d1$lati, label =d1$hotel_name),
  box.padding = 0.35, point.padding = 0.5,
  segment.color = 'grey50') +
  theme_classic(base_size = 12)
Map from URL : http://maps.googleapis.com/maps/api/staticmap?center=California&zoom=6&size=640x640&scale=2&maptype=roadmap&language=en-EN&sensor=false
Information from URL : http://maps.googleapis.com/maps/api/geocode/json?address=California&sensor=false
Error: Don't know how to add o to a plot
提前感谢您的帮助和努力。作为R的新手,如果你能提供和解释代码,我们将不胜感激。
提前感谢,

非常简单的解决方案:
ggmap
创建一个
ggplot
对象,因此关于
ggmap(…)+ggplot(…)
的部分基本上是将两个
ggplot
添加在一起,这不起作用。这就是错误的来源

数据帧中的数据将是调用
geom_point
data
参数

换成

ggmap(get_map(location = 'California', zoom = 6, maptype = "roadmap")) +
    geom_point(aes(x = longi, y = lati), data = d1, color = "blue", size = 3)
这会将
geom_点
层添加到由
ggmap
创建的
ggplot
对象上


此外,在ggplot中,您不想在
aes
参数中命名数据帧——因此我将
x=d1$longi
更改为
x=longi
,同样,对于y和任何其他美学,您可能需要映射。

感谢您的回答。我应该如何将我的酒店名称添加到地图上?您可以添加另一个具有适当美学和数据的图层:
geom\u label\u repel(aes(x=longi,y=lati,label=Hotel\u name),data=d1)
加上您想要的任何颜色、填充等,请留言!我使用geom_label_repel(aes(x=longi,y=lati,label=hotel_names),data=d1,box.padding=2,point.padding=0.5)添加了我的酒店名称