web-dev-qa-db-fra.com

Obtenir une carte avec des points, en utilisant ggmap et ggplot2

Je veux une carte avec des points (et d'autres couches geom_ *) dessus. Je reçois la carte, mais au lieu des points, tout ce que je reçois est un avertissement:

Message d'avis :
Removed 3 rows containing missing values (geom_point).

Voici un exemple reproductible:

library(ggmap)
library(ggplot2)

d <- data.frame(lat=c(50.659631, 50.607213, 50.608129),
                lon=c(3.09319, 3.011473, 3.031529))

Lille <- get_map("Lille,France", zoom=12)

p <- ggmap(Lille)
p <- p + geom_point(data=d, aes(lat, lon))
p

En regardant dans la sortie de

ggplot_build(p)

Je vois une couche avec des NA pour x et y, mais je ne comprends pas pourquoi les données de d ne sont pas prises en compte.

Lorsque j'utilise ggplot () au lieu de ggmap (), j'obtiens les points. Mais j'ai aussi besoin de la carte :)

Alors, comment puis-je obtenir un carte avec points dessus?

Merci

19
Costin

Vos valeurs de longitude et de latitude dans geom_point() sont dans le mauvais ordre. lon doit être composé de x et lat de y.

 p + geom_point(data=d, aes(x=lon, y=lat),size=5)
20
Didzis Elferts

Il semble que vous venez d'inverser la longitude et la latitude:

p <- ggmap(Lille)
p + geom_point(data=d, aes(x=lon, y=lat), color="red", size=30, alpha=0.5)

enter image description here

22
juba