Вопрос по r, ggplot2 – R - добавление легенды в ggmap (ggplot2) при использовании аннотации

3

К вашему сведению: я довольно новичок в ggplot2 и ggmap, поэтому я прошу прощения за неаккуратный код, но это единственный способ, которым я смог построить наборы групп точек, где у каждой группы есть свой собственный цвет. Также моя ОС - Ubuntu.

Я пытаюсь добавить легенду к объекту ggmap и, в частности, легенду с непрерывным градиентом, переходящим цвета. Любой совет? Я пробовал атрибут легенды в ggmap, но он, похоже, не работает. Ниже то, что я имею до сих пор.

syd = get_map(location = center, zoom = zoom, maptype = type,color = "bw")

(SYDmap = ggmap(syd, extent = "panel",legend="right")+ annotate('point',x=lng[[1]],xend=max(lng[[1]]),y=lat[[1]],yend=max(lat[[1]]),colour=colorval[1],cex=cexval,pch=pchval))

for(i in 2:(topnum - 1))
  SYDmap<- SYDmap + annotate('point',x=lng[[i]],xend=max(lng[[i]]),y=lat[[i]],yend=max(lat[[i]]),colour=colorval[i],cex=cexval,pch=pchval)

i=topnum;  (SYDmap <-   SYDmap + annotate('point',x=lng[[i]],xend=max(lng[[i]]),y=lat[[i]],yend=max(lat[[i]]),colour=colorval[i],cex=cexval,pch=pchval)) + guides(fill = "colourbar")
возможный дубликатR - adding legend to ggmap (ggplot2) while using annotate Tyler Rinker
Я не думаю, что вы хотели опубликовать два одинаковых вопроса. У этого есть лучшие теги, поэтому я собираюсь начать процесс удаления предыдущего. joran

Ваш Ответ

1   ответ
9

Вместо того, чтобы использоватьannotateздесь метод, который добавляет точечный слой, используяgeom_point, Почти любой geom может быть добавлен к объекту ggmap, как если бы он был добавлен к объекту ggplot. Так какSize (см. содержаниеdf кадр данных ниже) - это эстетика цвета при вызовеgeom_pointЛегенда генерируется автоматически.

library(ggmap)

# Get a map - A map of Canberra will do
ACTmap = get_map(c(149.1, -35.325), zoom = 12, source = "google", maptype = "roadmap")

# A data frame of lon and lat coordinates and the variable Size
df = data.frame(lon = c(149.0307, 149.1326, 149.089, 149.048, 149.0965),
            lat = c(-35.3892, -35.28225, -35.34005, -35.34857, -35.34833),
            Size = c(1,2,3,4,5))

# Draw the map
ACTmap = ggmap(ACTmap)

# Add the points
ACTmap = ACTmap + geom_point(data = df, aes(x = lon, y = lat, colour = Size), 
      alpha = 0.6,  size = 10)

# Change the legend
ACTmap + scale_colour_continuous(low = "red", high = "blue", space = "Lab", guide = "colorbar")

enter image description here

Похожие вопросы