How to change ggplot legend labels and names with two layers?

I draw the longitude and latitude coordinates of two different data frames on a map of Sao Paulo using the ggmap and ggplot packages, and I want to manually mark each legend layer:

update: I edited my code below to fully reproduce (I used the geocoding function instead of get_map).

update: I would like to do this without combining data frames.

require(ggmap) sp <- get_map('sao paulo', zoom=11, color='bw') restaurants <- data.frame(lon=c(-46.73147, -46.65389, -46.67610), lat=c(-23.57462, -23.56360, -23.53748)) suppliers <- data.frame(lon=c(-46.70819,-46.68155, -46.74376), lat=c(-23.53382, -23.53942, -23.56630)) ggmap(sp)+geom_point(data=restaurants, aes(x=lon, y=lat),color='blue',size=4)+geom_point(data=suppliers, aes(x=lon, y=lat), color='red', size=4) 

enter image description here

I examined several issues and tried different paths without success. Does anyone know how I can insert a legend and designate blue dots as restaurants and red dots as suppliers?

+4
source share
1 answer

Now that your code is playing (thanks!):

 dat <- rbind(restaurants,suppliers) dat$grp <- rep(c('Restaurants','Suppliers'),each = 3) ggmap(sp) + geom_point(data=dat, aes(x=lon, y=lat,colour = grp),size = 4) + scale_colour_manual(values = c('red','blue')) 

enter image description here

+8
source

All Articles