R 将图例添加到地图中

R 将图例添加到地图中,r,legend,ggmap,R,Legend,Ggmap,我正在尝试向ggmaplike添加一个图例。看起来很好。但第一个问题是,scale\u color\u continuous只适用于两种颜色,但我需要使用三种颜色。第二,当我试图只用两种颜色(看起来很糟糕)时,我失败了。我的代码如下所示: ee<-runif(100,min=-6, max=26) nn<-runif(100, min=30, max=75) r<-colorRampPalette(colors=c("white", "red2", "black"))

我正在尝试向
ggmap
like添加一个图例。看起来很好。但第一个问题是,
scale\u color\u continuous
只适用于两种颜色,但我需要使用三种颜色。第二,当我试图只用两种颜色(看起来很糟糕)时,我失败了。我的代码如下所示:

 ee<-runif(100,min=-6, max=26)
 nn<-runif(100, min=30, max=75)
 r<-colorRampPalette(colors=c("white", "red2", "black"))
 aa<-round(runif(100, min=1, max=35),0)
 barv<-r(10)[as.numeric(cut(aa, breaks=10))]
 z<-data.frame(ee, nn,barv)
 my_map<-get_map(location='Europe', zoom = 3, maptype='satellite')
 p2<-ggmap(my_map)+
 theme(text=element_text(size=15))
 p2<-p2+geom_point(data=z, aes(x=ee, y=nn), colour=barv, 
 alpha = 0.5, size=2.5)
 p2
 #p2 + scale_color_continuous(low="white", high="black", 
 #space = "Lab", guide = "colorbar")

ee您可以使用
scale\u color\u gradient2
来实现这一点。您可以定义
low
mid
high
颜色值,还可以确定
中点在刻度上的位置:

# adding 'aa' as a column to your dataframe
z <- data.frame(ee, nn, barv, aa)

# create the plot
ggmap(my_map)+
  geom_point(data=z, aes(x=ee, y=nn, colour=aa), alpha = 0.5, size=2.5) +
  scale_color_gradient2(low="green", mid="red",high="blue", midpoint=18,
                        breaks=c(10,20,30), labels=c("ten","twenty","thirty")) +
  theme(text=element_text(size=15))
#将'aa'作为列添加到数据帧中

太棒了!最后一件事,我可以用文本替换图例中的数字吗?太多了!